我已经在Windows服务中使用this C# webserver已经存在了几年了,虽然它已经很久了,但它一直很稳定。
最近,用户一直在报告Chrome,只要他们访问内部托管的Web控制台,就会向他们发送ERR_EMPTY_RESPONSE
错误消息。您可以在IE中无问题地访问同一个控制台。
报告是最近发布的,所以我回滚到旧版本的代码,但仍然是同样的问题,仅在Chrome中。
我对网址进行了一次卷曲,看看是否有任何令人讨厌的内容,这是一个示例请求,经过几次刷新后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服务器受到影响。