我有一个RSS提要.当我浏览到Fiddler Web Debugger打开的源时,Fiddler向我抛出此错误: Chunked body did not terminate properly with 0-sized chunk. 触发错误的服务器响应如下所示: HTTP/1.1 200 OKDate: Tue, 22
Chunked body did not terminate properly with 0-sized chunk.
触发错误的服务器响应如下所示:
HTTP/1.1 200 OK Date: Tue, 22 Jan 2013 21:00:49 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Cache-Control: private Content-Type: text/xml; charset=utf-8 Content-Length: 30985 <rss version="2.0"> <channel> ... etc
RSS的所有者在尝试将站点提交给RSS聚合器时报告问题.
我试着在这里验证rss:http://validator.w3.org/appc/.响应如下:
IncompleteRead(30985 bytes read) (IncompleteRead; misconfigured server?)
但是,如果我浏览到rss并将代码复制到此验证器:http://validator.w3.org/appc/#validate_by_input,那么一切都会正确验证.
我该如何纠正?这是在IIS6中的.NET 3.5上运行的C#ASP.NET webforms项目.
更新
我似乎错误地使用了Fiddler.解除Decode选项后,这是服务器响应:
HTTP/1.1 200 OK Date: Tue, 22 Jan 2013 21:22:03 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Transfer-Encoding: chunked Cache-Control: private Content-Type: text/xml; charset=utf-8 7909 <rss version="2.0"> <channel> ... etc您上面发布的数据不是服务器发送的数据.来自服务器的响应包含HTTP标头传输编码:chunked但您的数据未正确处于HTTP分块编码格式.
请使用Fiddler捕获的实际数据更新您的问题,确保未选中Fiddler工具栏中的Decode选项.
(至于问题的根本原因,您是否错误地调用了Response.Close()?请参阅this article以获取解释为什么这是完成HTTP响应的错误方法的原因.)