【发布时间】:2014-04-08 19:09:49
【问题描述】:
我最近遇到了一个 Chrome 问题,我认为值得与您分享。
我使用 HttpHandler 编写了一个自己编写的 API,该 API 应该返回 json 数据。但是当发生错误时,我想显示一个 html 文件。这在 IE 和 FF 中运行良好,但在 Chrome 中却不行。
查看开发者工具发现这个错误:net::ERR_INCOMPLETE_CHUNKED_ENCODING
谷歌对这个问题说得不多,但人们看到的很多。我所知道的是,它在一段时间后神奇地消失了。
我发现它位于这行代码中:
result.StoreResult(context);
context.Response.Flush();
context.Response.Close(); //<-- this causes the error
删除最后一行后效果很好。我不知道为什么只有 Chrome 有/有这个问题,但似乎我在 chrome 完成读取之前关闭了响应流。
希望对遇到相同或类似问题的人有所帮助。
现在我的问题是: 关闭/刷新响应流的最佳实践是什么?有什么规定吗?
【问题讨论】:
-
查看此资源Response.End, Response.Close, and How Customer Feedback Helps Us Improve MSDN Documentation;我在尝试发送分块响应时遇到同样的问题,也许您的响应是分块的(默认情况下)。
-
我对包装在 JSONP 回调中的本地 JSON 文件有完全相同的问题。当我从远程 CDN 请求文件时也会发生这种情况。
-
就我而言,我遇到了
net::ERR_INCOMPLETE_CHUNKED_ENCODING错误,因为服务器的网线没有完全连接。 -
我最近发现我的卡巴斯基阻止了超过 2MB 的响应,这导致了这个错误。我必须暂停卡巴斯基保护才能正确加载页面。
-
您是否尝试过并得到最终解决方案?
标签: c# google-chrome iis web-applications