如何解决"Chunked body没有正确终止0大块."?

qua*_*els 3 asp.net iis rss

我有一个RSS提要.当我浏览到Fiddler Web Debugger打开的源时,Fiddler向我抛出此错误:

Chunked body did not terminate properly with 0-sized chunk.
Run Code Online (Sandbox Code Playgroud)

触发错误的服务器响应如下所示:

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
Run Code Online (Sandbox Code Playgroud)

RSS的所有者在尝试将网站提交给RSS聚合器时报告问题.

我试着在这里验证rss:http://validator.w3.org/appc/.答案如下:

IncompleteRead(30985 bytes read) (IncompleteRead; misconfigured server?)
Run Code Online (Sandbox Code Playgroud)

但是,如果我浏览到rs并将代码复制到此验证器: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
Run Code Online (Sandbox Code Playgroud)

Eri*_*Law 8

您上面发布的数据不是服务器发送的数据.来自服务器的响应包含HTTP Header Transfer-Encoding:chunked,但是您的数据没有正确处于HTTP-chunked编码格式.

请根据实际的数据更新你的问题,由小提琴手所捕获,确保解码的提琴手的工具栏选项选中.

(至于问题的根本原因,您是否错误地调用了Response.Close()?请参阅此文章以解释为什么这是完成HTTP响应的错误方法.)

  • 现在,看看响应的最底层.它应该以0\r \n\r \n结束,但它不会.您没有回答是否在代码中调用Response.Close()? (2认同)
  • 我打电话给Response.Close().我用Response.End()替换它.它现在正在运作.感谢您的见解. (2认同)