none
Server cannot clear headers after HTTP headers have been sent. RRS feed

  • 質問

  • エンドユーザーの環境で以下のエラーが発生します。

    どのようのオペレーションの後、エラーが発生したか不明であり、対応に行き詰っています。

    ただ、このエラーによりシステムが動かなくなる、後続処理に影響を与えるということはなく、無視してよいと推測してます。

    明確でなくともこのエラーの発生原因を知りたいです。

    なにか、ヒントとなる情報があれば、ご教示ください。

    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)

    2017年9月14日 2:32

回答

  • > このエラーの発生原因を知りたいです。

    原因はエラーメッセージに書いてある通り明らかで、応答ヘッダを送信してしまった後に HttpResponse.ClearHeaders メソッドで応答ヘッダを削除しようとしたからです。

    例えば、以下のようなコードで再現できます。

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Flush();
        Response.ClearHeaders();
    }

    > ただ、このエラーによりシステムが動かなくなる、後続処理に影響を与えるということはなく、無視してよいと推測してます。

    そうは言えないと思います。

    上記のようにするとサーバーエラーとなり、期待された応答は帰ってきません。

    きちんと原因を調べて対処する必要がありそうです。

    2017年9月14日 5:04

すべての返信

  • > このエラーの発生原因を知りたいです。

    原因はエラーメッセージに書いてある通り明らかで、応答ヘッダを送信してしまった後に HttpResponse.ClearHeaders メソッドで応答ヘッダを削除しようとしたからです。

    例えば、以下のようなコードで再現できます。

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Flush();
        Response.ClearHeaders();
    }

    > ただ、このエラーによりシステムが動かなくなる、後続処理に影響を与えるということはなく、無視してよいと推測してます。

    そうは言えないと思います。

    上記のようにするとサーバーエラーとなり、期待された応答は帰ってきません。

    きちんと原因を調べて対処する必要がありそうです。

    2017年9月14日 5:04
  • 返信が遅れて申し訳ありません。

    ご返信、有難う御座います。

    内容について承知しました。

    原因について、調査を行います。


    2017年10月4日 11:30
  • > 立花様

    > 返信が遅れて申し訳ありません。

    立花様は何も回答していませんけど? 誰が回答したか分かってますか? よく読みましょうよ。

    2017年10月4日 11:36
  • SurferOnWww 様

    大変申し訳ありません。

    私が間違っておりました。

    2017年10月13日 8:39