[解決済み] HTTPヘッダを送信した後、サーバーがステータスを設定できない IIS7.5
2022-02-03 19:47:25
質問
本番環境では例外が発生することがあります。
- プロセス情報
- プロセスID:3832
- プロセス名:w3wp.exe
- アカウント名:NT AUTHORITY NETWORK SERVICE
- 例外情報
- 例外の種類:System.Web.HttpException
- 例外メッセージです。 HTTPヘッダが送信された後では、サーバーはステータスを設定できない。
- 資料請求
- リクエストURLです。 http://www.myulr.pl/logon
- リクエストパス:/logon
- ユーザーホストアドレス:10.11.9.1
- ユーザー:user001
- 認証されている:True
- 認証タイプ:フォーム
- スレッドアカウント名:NT AUTHORITY NETWORK SERVICE
- スレッド情報
- スレッドID:10
- スレッドアカウント名:NT AUTHORITY NETWORK SERVICE
- なりすましています。偽
Stack trace: at System.Web.HttpResponse.set_StatusCode(Int32 value) at
System.Web.HttpResponseWrapper.set_StatusCode(Int32 value) at
System.Web.Mvc.HandleErrorAttribute.OnException(ExceptionContext filterContext) at
System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext controllerContext, IList(1) filters, Exception exception) at
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) at System.Web.Mvc.Controller.ExecuteCore() at
System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__4() at
System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0() at
System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8(1).<BeginSynchronous>b__7(IAsyncResult _) at
System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult(1).End() at
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at
System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& ompletedSynchronously)
私のテスト環境ではこのエラーに気づかなかったのですが、何を確認すればよいのでしょうか?
ASP.NET MVC 2 (Release Candidate 2) を使用しています。
解決方法を教えてください。
原因については、Vagrantと大筋で同意見です。
- あなたのアクションが実行され、マークアップがレスポンスストリームに書き込まれました。
- ストリームがバッファリングされていないため、マークアップの書き込みを開始する前にレスポンスヘッダが書き込まれることになります。
- ビューでランタイムエラーが発生しました
- ステータスコードを200以外のものに設定しようとすると、例外ハンドラがキックされる
- ヘッダがすでに送信されているため、失敗。
私がVagrantに同意できないのは、quot;cause no errors in binding" remedy - ビューバインディングでヌル参照例外などの実行時エラーに遭遇する可能性があることです。
これに対するより良い解決策は
Response.BufferOutput = true;
たとえば、コントローラのアクションや アプリケーションの On_Begin_Request で、Response ストリームにバイトが送信される前に送信します。これにより、サーバー転送やクッキー/ヘッダーの設定など、 レスポンスを自然に終了させたり end/flush を呼び出したりすることができるようになります。
もちろん、バッファがフラッシュされていないか、スタックのもっと下のほうでfalseに設定されているかも確認します。
MSDNリファレンス。 HttpResponse.BufferOutput
関連
-
[解決済み】同じキーのアイテムがすでに追加されています。
-
[解決済み] RedirectToActionのパラメータとしてmodelを渡すことはできますか?
-
[解決済み] Visual Studioのデバッグ/ロードが非常に遅い
-
[解決済み] Razor View throwing "The name 'model' does not exist in the current context".
-
[解決済み] Automapper のタイプマップ構成がない、またはサポートされていないマッピング - エラー
-
[解決済み】ASP.NET RazorのHTML.ActionLinkとUrl.Actionの比較
-
[解決済み】1つのビューに複数のモデルを表示する
-
[解決済み】TextBoxFor()からは日付のみ。)
-
[解決済み] datetime2 データ型から datetime データ型への変換で、範囲外の値が発生しました。
-
[解決済み] ASP.NET MVCにおけるセッション変数
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HTTPヘッダを送信した後、サーバーがステータスを設定できない IIS7.5
-
[解決済み] Kendo UI MVC用パスワードテキストボックス
-
[解決済み] DI向けNinjectとUnityの比較【終了しました
-
[解決済み] RedirectToActionでURLが変更されない、またはIndexビューに移動しない
-
[解決済み】ASP.NET RazorのHTML.ActionLinkとUrl.Actionの比較
-
[解決済み】Html.ActionLinkが"?Length=4 "とレンダリングされるのはなぜか?
-
[解決済み】認証や認可に失敗した場合、AuthorizeAttributeがログインページにリダイレクトされるのはなぜですか?
-
[解決済み】ASP.NET MVC 3 - 部分テンプレートと表示テンプレートと編集テンプレート
-
[解決済み] HTMLヘルパーでURLを生成する
-
[解決済み] ASP.NET MVC Html.ActionLinkにアンカータグを含める