ASP.NET POST数据截断为49152字节(48K)

ASP.NET POST数据截断为49152字节(48K),asp.net,postdata,Asp.net,Postdata,我遇到了viewstate无法解码的错误,其中一些错误可以追溯到http post数据被截短为48K(49152)字节的事实 这是.NET2.0SP1中的一个bug。我目前有.NET3.5SP1 这个问题似乎并不是每个帖子都会出现。有什么想法吗 在.NET Framework 2.0 Service Pack 1中修复的问题 修复:当连接ASP.NET的应用程序收到POST请求时,POST请求中的数据将被截断为49152字节 编辑:在我将编码指定添加到表单后,在我的错误日志中捕获其中一个错误。它

我遇到了viewstate无法解码的错误,其中一些错误可以追溯到http post数据被截短为48K(49152)字节的事实

这是.NET2.0SP1中的一个bug。我目前有.NET3.5SP1

这个问题似乎并不是每个帖子都会出现。有什么想法吗

在.NET Framework 2.0 Service Pack 1中修复的问题

修复:当连接ASP.NET的应用程序收到POST请求时,POST请求中的数据将被截断为49152字节


编辑:在我将编码指定添加到表单后,在我的错误日志中捕获其中一个错误。它显示内容类型已正确设置为url编码,内容长度超过49152。但是,错误日志中的post数据转储再次精确到49152字节。我可以通过在页面上多次单击submit按钮来重新创建它。我认为用户这样做是因为页面由于某种原因处理得非常慢(以前快得多)。很可能是后续提交遇到了这种截断。我的解决方案可能是再次使页面变快和/或从第一次单击时禁用按钮。

我确实知道IIS5有这个问题,它将截断所有超过48Kb的数据,除非表单以
应用程序/x-www-form-urlencoded
的形式发送,尝试将其设置为您的
内容类型,如:

<form accept-charset="utf-8" 
      enctype="application/x-www-form-urlencoded" ... >

</form>

政府可以提出这个问题

如果您同时搜索HTTP走私,您将发现相同的问题


您可以查看有关HTTP走私的信息。

我曾经遇到过这个问题,结果发现是浏览器截断了它

不过我已经不记得是哪一个了。我想说是firefox,但我不能确定


修复方法是将表单的内容类型更改为
multipart/form data

压缩、剪切、禁用非使用的viewstate数据,重新设计程序以不发布如此大量的数据。@Aristos,不幸的是,它已经被压缩,而且代码是继承的,而且很大,更改不会很快发生。另一方面,48K对post数据似乎不是一个合理的限制,不管是viewstate还是not。你知道IIS6是否仍然存在缺陷吗?这就是我们要用的。没有IIS6要测试,只有7个。但是,您是否尝试了表单属性
enctype
,它是否正常工作?是的,我添加了enctype。不知道它是否解决了问题,因为这是一个随机错误,并非总是发生。记录所有内容,直到找到是否仍然发生。。。使用IIS日志或自定义日志。。。请密切关注它,但理论上,它应该可以避免这个技巧的问题。我所有的用户都使用不同版本的IE,而且这个问题至少在IE7和IE8上被报道过。但是我没有看到IE9中的一个,尽管我只有少量示例。您的表单类型是multipart吗?就像我说的,我不记得是不是firefox。检查表单类型当我签入F12和Fiddler时,表单是url编码的,而不是多部分的。但我自己也从未见过这种错误发生,我只在错误报告(网站通过电子邮件发送给我)中看到这种情况,表明postdata已被切断。就像balexandre一样,将其更改并密切关注您的日志。