有没有一种方法可以在 IIS 中仅针对网站的一部分显示自定义错误页面?

Is there a way to display custom error pages in IIS for only parts of a website?

我有一个公开常规网页和 WCF 网络服务的网站。 理想情况下,网页应显示状态 500 的自定义错误页面(在 web.config 中使用 httpError),而 Web 服务会抛出 soap 错误。

不幸的是,状态 500 的自定义错误页面也会使用自定义错误页面隐藏 soap 错误。

有没有办法在 IIS 7.5 中为网站的一部分启用自定义错误页面? (我不能将网络服务放在单独的站点中,它取决于网页中的运行时对象。)

如果您所有的网络服务文件都存储在与网站其余部分分开的目录中,您只需将一个新的 web.config 文件放入该目录并在那里设置一个 <httpErrors> 节点。这将覆盖根 web.config

中的设置

如果您的普通 URI 和网络服务 URI 之间没有明确的分隔,您可以使用根目录中的位置节点 web.config 例如:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="service/foo.aspx">
        <system.webServer>
            <httpErrors>
                <remove statusCode="502" subStatusCode="-1" />
            </httpErrors>
        </system.webServer>
    </location>
</configuration>

您可以根据需要拥有任意数量的位置节点。