0

我有一个我支持的 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 的任何东西

4

1 回答 1

1

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

这样,您可以避免将所有数据呈现到缓冲区并在发送之前等待此缓冲区满。

还要禁用不需要的控件的视图状态。

如果上述方法不能解决问题,那么您需要使用允许它们的不同类型的控件重新设计您的页面,并且您可以使用fluah() 不时将数据发送到浏览器。中继器控件可以工作,也许网格视图可能无法工作。

于 2012-06-07T15:11:20.483 回答