IIS 配置选项之一是将多少错误详细信息发送到客户端的浏览器。
很明显,为什么人们想要自己的开发服务器,而不是从生产服务器向公众传递详细的错误消息。
如何设置 IIS 以将错误发送到特定主机(例如开发人员的 IP 地址)?我不想远程桌面到服务器只是为了查看应用程序上真正的错误是什么。
我正在考虑的替代方案是在同一台服务器上设置另一个网站,并仅向特定主机授予访问权限。该网站将充当我试图从中获取详细错误的网站的反向代理,但这似乎比它应该的要复杂得多。
答案1
使用标准 IIS 设置只能区分本地服务器和任何远程计算机。无法让某些远程计算机获得详细错误信息,而其他远程计算机则不会。
无论如何,有一个技巧可以帮助你做到这一点。
您关于拥有第二个开发站点的想法已经很正确了,理想情况下,您希望一个站点包含所有应用程序文件,但您需要两个不同的 web.configs 来定义您的错误设置。
拥有一个站点但有两个配置是不可能的,但是 IIS 配置系统是分层的,您可以在多个地方存储大多数设置。
创建两个指向同一物理位置的网站。
您不需要将您的设置放入本地的 web.config,而是放入<system.web><customErrors>
全局的 web.config %systemroot%\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
,并且在这两种情况<system.webServer><httpErrors>
下%systemroot%\System32\inetsrv\config\applicationHost.config
您都可以用位置标记将这些设置括起来,例如:
<location path="ProdSite">
<system.web>
<customErrors mode="On" />
</system.web>
</location>
<location path="DevSite">
<system.web>
<customErrors mode="Off" />
</system.web>
</location>
您仍然可以使用 IIS 管理器来执行此操作,在Management
站点的部分中,打开Configuration Editor
并深入到要更改的设置,在顶部将From
下拉菜单更改为Root Web.Config
或ApplicationHost.config
仍然不是超级简单,但你可以通过一个网站来实现。