0

サポートしているWebアプリケーションがあり、レンダリングする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

maxRequestLengthweb.configでノードのプロパティを使用しようとしましHttpRuntimeたが、それを制御していないようです。

テストケースとして5Kに設定しようとしましたが、大きくても(約150K)Webページが表示されるので、巨大なWebページを表示することはできないと思います。

最大応答サイズを制御し、「最大要求長を超えました」エラーを回避する方法はありますか?

何かが変更された場合は、IIS6.0で.Net4.0を使用しています。

4

1 に答える 1

1

Response.Buffer=falseそのページに設定し、ページResponse.Flush()をレンダリングするときに時々使用します。

このようにして、すべてのデータを1つにまとめてバッファーにレンダリングし、このバッファーがいっぱいになるのを待ってから送信することを回避できます。

また、不要なコントロールのビューステートを無効にします。

上記で問題を解決できない場合は、それらを許可する別のタイプのコントロールを使用してページを再設計する必要があり、fluah()を使用してブラウザにデータを送信できます。リピーターコントロールは機能する可能性があり、グリッドビューが機能しない可能性があります。

于 2012-06-07T15:11:20.483 に答える