4

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

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。取消选中解码选项后,这是服务器响应:

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
4

1 回答 1

9

您在上面发布的数据不是服务器发送的数据。来自服务器的响应包含 HTTP Header Transfer-Encoding: chunked但您的数据未正确采用 HTTP 分块编码格式。

请使用 Fiddler 捕获的实际数据更新您的问题,确保未选中Fiddler 工具栏中的解码选项。

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

于 2013-01-22T21:16:16.793 回答