思ったとおりに機能しないコードを継承しました。
ファイルアップロードコントロールが設定されたフォームがあり、ファイル制限はデフォルトのasp.net4MBに設定されています。
フラッシュ/アクティブXコントロールを使用せずに、クライアント側でファイルサイズをテストするための実際の信頼できる方法はありません。
そのため、Global.asaxファイルでエラーをキャッチし、新しい場所にserver.transferを実行しています。
私が抱えている問題は、サーバーが転送中にハングし、ページが「ロード中」にとどまり、プロセスがServer.Transferのコード行でスタックしたままになることです。
エラーを転送しようとしただけですが、ファイルをアップロードすると、そこに留まります。
Server.Transfer("~/Error.aspx");
ここでの助けをいただければ幸いです。これは非常に大きな障害です。構成で設定されているファイルよりも大きいファイルをアップロードするユーザーを処理できる必要があります。フレームワークからの厄介なエラーなし。
編集-転送先のページのpage_loadイベントに入ると、転送が機能しているように見えます。これをpage_prerenderまでたどると、レンダリングされたページが表示されず、ブラウザはそのままの状態で表示されます。読み込み中
私が引き起こしているエラーの追加されたスタックトレースを編集します:
Exception = System.Web.HttpUnhandledException
Inner Exception = System.Web.HttpException
Server.GetLastError.InnerException.Message
Maximum request length exceeded.
Server.GetLastError.InnerException.StackTrace
at System.Web.HttpRequest.GetEntireRawContent()
at System.Web.HttpRequest.GetMultipartContent()
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)
また、アップロードしようとしているファイルは12MBです。(それが違いを生む場合)