我管理其运行良好,去年夫妇在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