我有一个我支持的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的任何内容
答案 0 :(得分:1)
为该页面设置Response.Buffer=false
,并在呈现页面时使用Response.Flush()
时间。
通过这种方式,您可以避免将所有数据呈现给缓冲区,并在发送之前等待此缓冲区已满。
同时禁用您不需要的控件上的viewstate。
如果以上问题无法解决问题,那么您需要使用允许它们的不同类型的控件重新设计页面,并且您可以使用fluah()不时地向浏览器发送数据。转发器控件可以工作,也许gridview可能无法工作。