Asp.net web.config中被拒绝的位置的自定义错误设置被忽略

Asp.net web.config中被拒绝的位置的自定义错误设置被忽略,asp.net,.net,iis,web-config,custom-errors,Asp.net,.net,Iis,Web Config,Custom Errors,在ASP.NET4和MVC2应用程序中,我们有一个奇怪的配置错误 web.config如下所示: <configuration> <location path="blockedpath"> <system.web> <authorization> <deny users="*" /> </authorization>

在ASP.NET4和MVC2应用程序中,我们有一个奇怪的配置错误

web.config如下所示:

<configuration>
    <location path="blockedpath">
        <system.web>
            <authorization>
                <deny users="*" />
            </authorization>
        </system.web>
    </location>
    <system.web>
        <customErrors mode="On" defaultRedirect="~/Error.aspx" />
    </system.web>
</configuration>

访问被阻止的位置被正确拒绝,但会从IIS发出我们不希望看到的详细错误消息

为什么它不提供配置的自定义错误


当页面访问被配置拒绝时,我们能控制它提供什么页面吗?

如果这是IIS7,那么看起来IIS正在劫持响应。试试这个:

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>

根据博客文章,IIS7试图提供帮助,喜欢窃取您的自定义错误页面,并用自己的页面替换它们


在IIS中打开错误页面功能,然后单击右侧菜单上的编辑功能设置。将详细错误选项设置为让IIS通过您从ASP.NET提供的任何错误。

如果我理解得很好,您可以请求loginUrl=“PageOnNotLogedin.aspx”,用户未登录时必须进入的页面?对吗?我们没有使用web.config来控制它,但我们基本上是相似的。但是,该页面是401的结果(即,如果您提供了正确的用户,您可以登录),而不是403(您的用户看不到)。403禁止的错误不应重定向到登录表单。干杯,我尝试了这个,但在我的情况下似乎没有什么不同。你可以在一个全新的.Net 4 IIS7应用程序中看到它,只需将拒绝页面添加到web.config并访问它。谢谢。我发现您还可以使用