如何隐藏在黄色死亡屏幕中抛出异常的源代码?例如,请考虑以下有关潜在危险请求的屏幕:
在上面的示例中,不显示源行。然而,如果是任何自定义编写的代码抛出异常,则错误行总是显示如下:
如何在抛出错误时隐藏代码行(类似于第一张图片)?
答案 0 :(得分:6)
在“web.config”文件中将customErrors
section的mode
属性设置为RemoteOnly
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="RemoteOnly" />
</system.web>
</configuration>
这使您可以在服务器上本地浏览网站时查看详细错误,但不会显示远程访问者的详细错误。
或者,将其设置为On
而不是RemoteOnly
,以完全隐藏详细错误,无论您是远程浏览还是本地浏览。
答案 1 :(得分:1)
您可以在Web配置customErrors定义中配置它。
http://msdn.microsoft.com/en-us/library/h0hfz6fc(v=vs.71).aspx
答案 2 :(得分:1)
要做到这一点非常简单,只需编辑您的web.config文件即可:
<customErrors mode="RemoteOnly" />
答案 3 :(得分:0)
因为它显然是潜在的危险请求,用户可能会发送未经过消毒的数据,如
<script type="text/javascript"> alert('sdas');</script>
。
您甚至可以查看此链接Prevent Script exploits
web config
<system.web>
<customErrors mode="RemoteOnly"/>
</system.web>
答案 4 :(得分:0)
将这些行添加到Web.config
<configuration>
...
<system.web>
<customErrors mode="On"
defaultRedirect="~/ErrorPages/Oops.aspx" />
...
</system.web>
</configuration>
答案 5 :(得分:0)
如果这是现场而不是在开发机器上,它根本不应出现。
你可以从<customErrors>
检查web.config
,这样你就可以设置显示一个漂亮的html页面(普通的静态,不是aspx,不是由ASP .Net处理),它表示发生了错误,等等。
然后ELMAH有助于记录这些错误(包括源代码行,需要查看发生的错误以便修复等)。
此外,不应在 DEBUG 模式下部署实时网站,而应在发布模式下部署。对于Web Site Projects
,只能在config
切换,但对于Web Application Projects
,您需要使用正确的设置进行编译。
答案 6 :(得分:0)
制作一个假类 - 创建dll
// lines of codes
yummy.Faker();
转到您当前正在工作的项目。 添加DLL的引用 去你想扔错误的地方。写下这个。
npm install -g tsd
tsd query angular2 --action install
我把它放在静态类的一些构造函数中,即helper12。然后异常似乎来自helper12类