1

私はいくつかのASP.NETアプリケーションに取り組んでいます。故障やエラーが発生した場合、奇妙なエラー画面が表示されます。エラーページには次のようなものが表示されます。

��`I�%&/m�{J�J��t��`$ؐ@�������iG#)�*��eVe]f@�흼��{����{����;�N'���?
\fdl��J�ɞ!���?~|?"��Ey�')=��y6�����h��贮
�:�V�˼n��E:��,m�Wy�����<�ӶJ�e;~|W^�`4�u�A:�f��/>

等々....

アプリケーションは現在テスト段階にあるため、web.configからエラー画面を表示したままにしました。同じ問題に直面し、問題と解決策を得た人はいますか?

4

2 に答える 2

2

作業中のASP.NETアプリケーションが何らかの形式の自動GZip圧縮を利用しているかどうかを確認してください。エラーページは、Rick Strahlがここで説明している内容を非常に彷彿とさせます:http ://www.west-wind.com/weblog/posts/2011 / May / 02/ASPNET-GZip-Encoding-警告。そのブログ投稿にも解決策があります。

于 2012-10-31T05:33:55.047 に答える
2

解決策を提供してくれたRickStrahlと、参照してくれた@AndrewSklyarevskyに感謝します。

参照と完全な説明:http ://www.west-wind.com/weblog/posts/2011/May/02/ASPNET-GZip-Encoding-Caveats

私は問題を解決しました、そしてそれ故に解決策は以下のコードを追加することGlobal.asaxです:

protected void Application_Error(object sender, EventArgs e)
{
    // Remove any special filtering especially GZip filtering
    Response.Filter = null;
…
}

またはさらに良い

protected void Application_PreSendRequestHeaders()
{
// ensure that if GZip/Deflate Encoding is applied that headers are set
// also works when error occurs if filters are still active
HttpResponse response = HttpContext.Current.Response;
if (response.Filter is GZipStream && response.Headers["Content-encoding"] != "gzip")
    response.AppendHeader("Content-encoding", "gzip");
else if (response.Filter is DeflateStream && response.Headers["Content-encoding"] != "deflate")
    response.AppendHeader("Content-encoding", "deflate");
}
于 2012-10-31T06:30:59.243 に答える