繁体   English   中英

ASP.net应用程序中的奇怪错误屏幕

[英]Weird Error screen in ASP.net Application

我正在研究一些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中看到了错误屏幕。 任何遇到过同样问题的人,都会遇到问题和解决方案吗?

看看你正在使用的ASP.NET应用程序是否采用某种形式的自动GZip压缩,你的错误页面让人想起Rick Strahl在这里描述的内容: http//www.west-wind.com/weblog/posts/2011 / May / 02 / ASPNET-GZip-Encoding-Caveats 该博客文章中还有一个解决方案。

感谢Rick Strahl的解决方案,以及@Andrew Sklyarevsky的推荐:D

参考和完整说明: 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");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM