C# 如何控制最大响应大小

C# 如何控制最大响应大小,c#,asp.net,.net-4.0,iis-6,C#,Asp.net,.net 4.0,Iis 6,我有一个我支持的web应用程序,它有时需要渲染巨大的网页 有时我会遇到这种例外情况(它未链接到用户制作的上传,网页呈现约22MB的Html): 我试图在web.config中使用HttpRuntime节点的maxRequestLength属性,但它似乎无法控制它 作为测试用例,我试图将其设置为5K,但网页显示,即使它更大(大约150K),所以我猜它不允许显示巨大的网页 是否有一种方法可以控制最大响应大小并避免“超出最大请求长度”错误 如果它改变了我们在IIS 6.0中使用的.Net 4.0的任何

我有一个我支持的web应用程序,它有时需要渲染巨大的网页

有时我会遇到这种例外情况(它未链接到用户制作的上传,网页呈现约22MB的Html):

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

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

是否有一种方法可以控制最大响应大小并避免“超出最大请求长度”错误


如果它改变了我们在IIS 6.0中使用的.Net 4.0的任何内容,请为该页面设置
Response.Buffer=false
,并在呈现页面时不时使用
Response.Flush()

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

另外,在不需要的控件上禁用viewstate


如果上述方法无法解决此问题,则需要使用其他类型的控件重新设计页面,并允许使用fluah()将数据发送到浏览器。repeater控件可以工作,gridview可能不工作。

好主意,我不确定它是否真的能解决问题,因为它是一系列gridview(可能每个gridview刷新一次),但我会做一些测试。由于这是一个遗留问题,我只能采取有限的措施,但似乎是可行的。@Erick将注意力集中在buffer=false上,并在viewstate上关闭它。听起来像是可行的。页面已从22Mb变为4.61MB(!)。这不是一种设置,而是对遗留ish软件的一种帮助。:-)@埃里克:是我写的还是随机的?我失去了你:)嗯,解除ViewState的激活和刷新有帮助。
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