HTTP请求的内容长度>体尺寸(Content Length of HTTP Request

2019-09-23 05:31发布

我管理其运行良好,去年夫妇在IIS 7.5中个月MVC 3.0 ASP.net内置的网站。 时不时地,当为被张贴的JSON是越来越截断我们的AJAX POST请求(通过jQuery的解雇)失败,我们所面临的一个问题。

什么到目前为止,我们发现的是,对于所有这些请求,请求的“内容长度”标头有更多的数据比我们实际上是在要求得到。

我们已经设置了maxRequestLength在我们的web.config 51200,我相信maxAllowedContentLength的价值有一个相当大的默认值(我们没有设置在我们的配置)。 此外,我有“的Content-Length”低至7301(字节)失败的请求,但我们设法搞到只有2179字节的吧。 所以我不怀疑这是击中任何限制。

是有问题的请求请求标如下

  • 缓存控制:无缓存
  • 连接:保持活跃
  • 附注:无缓存
  • 内容长度:7301
  • 内容类型:应用/ JSON; 字符集= UTF-8;
  • 接受:应用/ JSON,文本/ JavaScript的,/; Q = 0.01
  • 接受编码:gzip,紧缩
  • 接受语言:EN-US,EN; Q = 0.5
  • 用户代理:Mozilla的/ 5.0(Windows NT的6.1; WOW64; RV:15.0)的Gecko / 20100101 Firefox的/ 15.0.1
  • X-要求 - 由于:XMLHttpRequest的

有任何想法吗 ??


更新 :我已经能够进一步从我们的代码隔离问题。 已经编写了接受一个JSON字符串,只是反序列化一个独立的控制器。 在发生错误的情况下,记录错误。

当我在50所请求的环击中此控制器与150个并发线程并行然后我得到其中该控制器接收JSON被截断几个故障。 现在,我们强烈专注于优化IIS和阅读更多关于可能有关(我们目前正在与IIS默认参数运行)的各种参数。

我强烈地感到,150个并发连接,不应该是一个大问题,并感到由衷的希望调整一些参数,我们应该能够闯过这个问题。 一旦我们得到过去的这个问题,将分享我的发现。


* 更新2(10月8日)*:我已经进一步缩小的问题。 我在IIS打开错误日志,发现我的失败请求读取数据时得到以下错误

BytesReceived = 0
ErrorCode = 2147943395
Error Description = "The I/O operation has been aborted because of either a thread exit or an application request.(0x800703e3)"

我发现有关IIS论坛此错误信息,但我还没有与所给定的(复式)建议进行试验。 下面的链接可以是一个很好的起点,搜索更多关于这个

http://forums.iis.net/p/1149787/1917288.aspx

Answer 1:

我终于想通了的原因和解决方案的修补程序。 不幸的是它并不适用于我的环境,而且有利于生产环境。 请看下面的详细信息

这原来是由于在Windows 2008 R2,它使asp.net认为客户端已经断开它甚至还没有在一个错误。 一种相同的修补程序可用,可以在这里找到http://support.microsoft.com/kb/977453 。 解决方法是已经的Windows 2008 R2 SP1(从发现的部分在这里 )。

虽然修复工作对我来说在运行Windows 2008 R2一个环境,它不能应用于Windows 2008 R2 SP1的。 不幸的是,问题仍然可以在SP1上运行的环境中进行复制,并保持不解决。 我在打开IIS上论坛针对此问题的新情况http://forums.iis.net/t/1192310.aspx ,并有跟踪它来代替。

要了解更多关于这个问题-你可以按照线程http://forums.iis.net/p/1149787/1917288.aspx



文章来源: Content Length of HTTP Request > body size