【问题标题】:How to disable detailed "Compilation Error" output in web page如何在网页中禁用详细的“编译错误”输出
【发布时间】:2015-03-15 13:19:42
【问题描述】:

我想禁用在我的 ASP.NET 网站上发生错误时显示的详细“编译错误”页面。它显示:

  • 标题:“编译错误”
  • 说明
  • 编译器错误消息
  • 源错误(黄色框,详细的行号和代码错误以红色突出显示)
  • 源文件
  • “显示详细的编译器输出”

这是我已经尝试过的:

  • 在 IIS 的 ASP 图标中,将“启用日志错误请求”设置为 在站点和应用池级别均为 false。
  • 在 IIS 的 ASP 图标中,将“启用服务器端调试”设置为 在站点和应用池级别均为 false。
  • 在 IIS 的错误页面图标中,单击“编辑功能设置...”, 在站点和应用程序池级别选择“详细错误”。
  • 在 web.config 文件中,设置“compilation debug=false”
  • 在 web.config 文件中,设置“customErrors mode=Off”

理想情况下,我不想透露编译错误。所以,我想知道:a)如何禁止显示这些详细信息并显示默认值,和/或 b)如何显示我的自定义错误页面。谢谢。

【问题讨论】:

  • customeErrors mode="Off" 表示显示错误...您想要“On”或“RemoteOnly”,仅当您在本地主机上时才会显示它们。
  • 您只想对编译错误或所有错误执行此操作吗?一般来说,实时站点上不应该出现编译错误。
  • customErrors 模式是问题所在 - 我误读了与文档相反的内容,但我可以问一个后续问题:如果我将模式更改为“开”,是否可以登录归档将显示的错误?

标签: asp.net iis


【解决方案1】:

您可以在 web.config 中自定义它:

<customErrors defaultRedirect="GenericError.htm"
              mode="On">
  <error statusCode="500"
         redirect="InternalError.htm"/>
</customErrors>

更多信息here.

【讨论】:

  • 天啊,我对文档的愚蠢误读。谢谢!我可以问一个后续问题:如果我将模式更改为“开启”,是否可以登录一个文件会显示错误?
  • @swabygw 您可以重定向到自定义 .aspx 页面并从那里登录。
  • 我想过这个问题,但我在查询字符串中看到的唯一相关信息是变量“aspxerrorpath”,后跟生成错误的表单名称。如果我重定向到自定义 .aspx 页面,有没有办法访问详细的“编译器错误消息”和“源文件”(不过,这可能与“aspxerrorpath”和“行”号相同?
  • 您可以访问上次发生的异常。检查this
  • 你明白了 - 但我必须将 redirectMode="ResponseRewrite" 添加到 customErrors 标签,然后它就像一个魅力!这是我在我的 aspx 文件中显示错误的代码(抱歉,不确定如何在 StackOverflow 中正确执行代码) - 请参阅下一条评论。
猜你喜欢
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多