2012-05-07 208 views
4

我有一个正常的Ajax更新面板的页面。有一个提交按钮,将用户选择发送到服务器。如果用户等待一两分钟,则来自服务器的响应是HTTP 413(请求实体太大)。这只会发生在我等待一两分钟后尝试重新提交时。如果页面上的一块土地并提交表单,服务器就能够处理它。HTTP状态代码413

我已经修改了应将UploadReadAheadSize(如前所述http://forums.asp.net/t/1574804.aspx),并将其设置200,000,000 - 仍然是问题仍然存在

HTTP请求

POST https://server/somepage HTTP/1.1 
Accept: */* 
Accept-Language: en-US,zh-Hans;q=0.9,zh-CN;q=0.8,zh-SG;q=0.7,zh-Hant;q=0.6,zh-HK;q=0.4,zh-MO;q=0.3,zh-TW;q=0.2,zh;q=0.1 
Referer: https://server/somepage 
x-requested-with: XMLHttpRequest 
x-microsoftajax: Delta=true 
Content-Type: application/x-www-form-urlencoded; charset=utf-8 
Cache-Control: no-cache 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E) 
Host: some-server 
Content-Length: 86124 
Connection: Keep-Alive 
Form-Data........... 

请求是通过SSL。

我也试过在web配置

<httpRuntime executionTimeout="3600" maxRequestLength="1902400" /> 
+0

极度抱歉。将uploadReadAheadSize设置为200 MB。我之前试图设置大约2 MB的大小。要保持在安全范围内,请将其修改为20 MB – Anand

回答

4

这解决了错误编辑的httpRuntime配置。纠正我,如果我能够正确地描述问题。 SSL打开一段安全通道(一段时间),所以当我尝试在该时间框架中发布数据时,每件事情都很顺利。但是一旦隧道关闭并且服务器在客户端重新协商之前预先加载请求。但预紧最大长度很小,因此失败。

我试图设置uploadReadAhead值120,000的值大于实体请求大小约86,000。仍然请求失败(wierd .. ????)。 一旦我将其设置为大约10 MB的值,它就变得很好。