请求长度超过最大限制 - 无法上传文件

4
我已经广泛地搜索了这个异常,所有我找到的讨论(包括在这个论坛上的)似乎都与文件上传和超过允许的文件大小限制有关。然而,在我的情况下,我没有上传任何东西,只是一个简单的回传。
我有一个GridView显示SQL查询结果。这个工作正确,并按预期显示数据。此外,在页面上还有一些下拉列表框,用于通过SQL数据源上的控件参数过滤数据。然而,页面上创建的任何回传都会导致上述异常。
我已经测试了查询和所有的筛选参数都按预期工作。我已经测试了删除各种控件,无法确定单个原因或故障点,因为无论如何触发回传,错误都会发生。
感谢任何建议。
2个回答

4
可能是与提交回发时出现的请求长度超过最大值异常问题相似。
很可能您在GridView中启用了ViewState,并且该GridView中有大量数据。如果您不需要在postbacks之间维护网格的视图状态,则可以通过在控件上设置EnableViewState =“false”来禁用它。
当为ASP.NET网页启用ViewState时,会向页面添加一个隐藏字段,其中包含每个控件的状态的编码字符串(除了那些已禁用ViewState的控件)。当页面被提交到服务器时,该字段随之。不幸的是,一些控件(如GridView)可能包含非常大量的状态信息,这可能导致非常大量的POST数据,足以超出应用程序设置的限制。如下所述,默认限制为4MB。
ViewState可以针对整个应用程序或特定控件禁用。或者,您可以增加最大请求大小。有关详细信息,请参见引用的问题。

谢谢Peter,禁用网格的视图状态解决了问题。我没有意识到每次网格都返回所有数据,尽管我处理过非常大的数据集,但以前从未遇到过这个问题。 - Hearth

2

maxRequestLength并不特指文件上传,而是指请求的完整大小,包括头部和请求体。

这是一个服务器端设置,默认值为4 MB,但可能在您的服务器配置中进行了不同的设置。

您尝试过使用网络抓包工具查看提交请求的实际大小吗?


谢谢,我知道这个异常的意思,但是我却很难确定它的原因。我们没有改变默认设置,在调试中我甚至没有收到异常,只有一个连接重置浏览器错误。正如我所提到的,所有的搜索结果似乎都与文件上传有关,这并没有帮助我的情况。 - Hearth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接