如何控制最大响应大小

时间:2012-06-07 14:30:21

标签: c# asp.net .net-4.0 iis-6

我有一个我支持的Web应用程序,有时会渲染大量的网页。

有时候我有这个例外(链接到用户制作的上传,网页呈现大约22MB的Html):

Error Caught in Page : http://example.com/thepage.aspx
Error Message:Maximum request length exceeded.
Stack Trace:   at System.Web.HttpRequest.GetEntireRawContent()
   at System.Web.HttpRequest.FillInFormCollection()
   at System.Web.HttpRequest.get_Form()
   at System.Web.HttpRequest.get_HasForm()
   at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
   at System.Web.UI.Page.DeterminePostBackMode()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint

我尝试在web.config中使用maxRequestLength节点的HttpRuntime属性,但它似乎无法控制它。

作为测试用例,我尝试将其设置为5K,但网页显示即使它更大(大约150K),所以我猜它不会允许显示巨大的网页。

有没有办法可以控制最大响应大小并避免“超出最大请求长度”错误?

如果它改变了我们使用.Net 4.0和IIS 6.0的任何内容

1 个答案:

答案 0 :(得分:1)

为该页面设置Response.Buffer=false,并在呈现页面时使用Response.Flush()时间。

通过这种方式,您可以避免将所有数据呈现给缓冲区,并在发送之前等待此缓冲区已满。

同时禁用您不需要的控件上的viewstate。

如果以上问题无法解决问题,那么您需要使用允许它们的不同类型的控件重新设计页面,并且您可以使用fluah()不时地向浏览器发送数据。转发器控件可以工作,也许gridview可能无法工作。