トップ回答者
Server cannot clear headers after HTTP headers have been sent.

質問
-
エンドユーザーの環境で以下のエラーが発生します。
どのようのオペレーションの後、エラーが発生したか不明であり、対応に行き詰っています。
ただ、このエラーによりシステムが動かなくなる、後続処理に影響を与えるということはなく、無視してよいと推測してます。
明確でなくともこのエラーの発生原因を知りたいです。
なにか、ヒントとなる情報があれば、ご教示ください。
2017-07-07 07:00:26,403 [ERROR] <N/A:N/A> (HttpApplication.RaiseOnError)
------------------------------------------------------------------------
[Message ]:Server cannot clear headers after HTTP headers have been sent.
[Exception ]:System.Web.HttpException
[Source ]:System.Web
[TargetSite]:Void ClearHeaders()
[StackTrace]:
at System.Web.HttpResponse.ClearHeaders()
at ASP.views_teiki_interface_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
回答
-
> このエラーの発生原因を知りたいです。
原因はエラーメッセージに書いてある通り明らかで、応答ヘッダを送信してしまった後に HttpResponse.ClearHeaders メソッドで応答ヘッダを削除しようとしたからです。
例えば、以下のようなコードで再現できます。
protected void Page_Load(object sender, EventArgs e) { Response.Flush(); Response.ClearHeaders(); }
> ただ、このエラーによりシステムが動かなくなる、後続処理に影響を与えるということはなく、無視してよいと推測してます。
そうは言えないと思います。
上記のようにするとサーバーエラーとなり、期待された応答は帰ってきません。
きちんと原因を調べて対処する必要がありそうです。
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年9月20日 7:06
- 回答としてマーク ysakamoto.jp 2017年10月13日 8:37
すべての返信
-
> このエラーの発生原因を知りたいです。
原因はエラーメッセージに書いてある通り明らかで、応答ヘッダを送信してしまった後に HttpResponse.ClearHeaders メソッドで応答ヘッダを削除しようとしたからです。
例えば、以下のようなコードで再現できます。
protected void Page_Load(object sender, EventArgs e) { Response.Flush(); Response.ClearHeaders(); }
> ただ、このエラーによりシステムが動かなくなる、後続処理に影響を与えるということはなく、無視してよいと推測してます。
そうは言えないと思います。
上記のようにするとサーバーエラーとなり、期待された応答は帰ってきません。
きちんと原因を調べて対処する必要がありそうです。
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年9月20日 7:06
- 回答としてマーク ysakamoto.jp 2017年10月13日 8:37
-
返信が遅れて申し訳ありません。
ご返信、有難う御座います。
内容について承知しました。
原因について、調査を行います。
- 編集済み 立花楓Microsoft employee, Moderator 2017年10月5日 0:54 回答者名が異なるため