ASP.NET 在本地主机上禁用调试错误消息

ASP.NET disable debug error messages on localhost

我有一个项目是 运行 一个小型 node.js 应用程序作为反向代理。反向代理收到的一些请求被定向到安装在同一台机器上的 IIS,这自然会通过 localhost / 127.0.0.1 命中 IIS。

因此,IIS 会在发生错误时自动 return 提供详细的错误消息。自然地,代理将这些发送给用户,这并不好,因为它们包含的信息多于我希望外部用户看到的信息。我试图通过在 web.config 中显式设置编译 debug="false" 来关闭详细的错误消息,但是由于请求来自本地主机,IIS 似乎决定 return 详细调试错误消息.

有没有办法禁止 return 编辑这些调试错误消息,即使请求来自本地主机?

我是 运行 Windows 2012 RS, IIS 8, .NET 4.6.

好的,我找到了我需要做的事情来确保 IIS 永远不会 returns 详细的错误消息,无论是本地的还是非本地的。

更多详情can be found here

简短的回答是:启动 IIS 管理器,单击网站,在 IIS 下转到错误页面,右键单击预定义的错误消息和 select "Edit Feature Settings",然后 select "Custom error pages"。然后定义要显示的页面。

或者,您可以在 system.webServer 下的 web.config 中使用如下所列的值定义您的首选项。 "errorMode" 默认为 "DetailedLocalOnly",这导致了我试图避免的问题。设置为 "Custom" 可解决问题。

<httpErrors errorMode="Custom">
    <remove statusCode="401" subStatusCode="-1"/>
    <error statusCode="401" prefixLanguageFilePath="" path="/errors/401.html" responseMode="ExecuteURL"/>
</httpErrors>