几年来,我一直在使用嵌入在 Windows 服务中的这个 C# 网络服务器,虽然它有它的时刻,但它一直非常稳定。
最近,用户一直报告 ChromeERR_EMPTY_RESPONSE
在访问内部托管的 Web 控制台时会给他们一条错误消息。您可以在 IE 中毫无问题地访问相同的控制台。
这些报告是最近的,所以我回滚到我的代码的旧版本,仍然是同样的问题,再次只在 Chrome 中。
我对 URL 运行了一个 curl 以查看其中是否有任何讨厌的东西,这是一个示例请求,在几次刷新后将在 Chrome 中失败:
curl -vl -b cookies.txt -c cookies.txt http://localhost:56552/admin
* Adding handle: conn: 0x1ff51e0
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x1ff51e0) send_pipe: 1, recv_pipe: 0
* About to connect() to localhost port 56552 (#0)
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 56552 (#0)
> GET /admin HTTP/1.1
> User-Agent: curl/7.32.0
> Host: localhost:56552
> Accept: */*
> Cookie: __session_id=81baa233e1f742b3a510c7746775f49c
>
< HTTP/1.1 200 Completed - YAMS
< Content-Type: text/html
< Content-Length: 5409
< Connection: Close
< Date: Tue, 03 Sep 2013 14:11:19 GMT
* Server C# WebServer is not blacklisted
< Server: C# WebServer
<
<lots of html>
</html>
* Closing connection 0
问题:这是 Chrome 最近更新中的问题吗?每次搜索错误消息都会产生很多问题,但答案却很少。
处理 HTTP 响应的方式是否有问题,只有 Chrome 才严格?
任何想法如何进一步诊断并理想地修复?
无论如何,我正在撕掉网络服务器组件并自己重写它,但我需要尽快解决这个问题,大约有 5k 台服务器受到影响。