首页 > 解决方案 > 为什么 IIS 会针对 403 错误显示它自己的错误消息,而不是依赖于我的 customErrors 元素?

问题描述

我收到一个请求http://example.com/%2f..%2fwindows%2fsomething.ini,IIS 显示“禁止 URL - HTTP 错误 403。请求 URL 被禁止。”

我认为这个请求在 IIS 级别被阻止。我怎样才能让 IIS 让这个错误发生在我的应用程序中,以便我可以显示我的应用程序其余部分使用的错误页面?使用 web.config 中的 customErrors 属性,404 错误按预期顺利解决:

    <customErrors mode="RemoteOnly" defaultRedirect="~/content/error.html">
    </customErrors>

如果我输入一个更简单的无效 URL,http://example.com/asdfasdfas/asdfasdf那么我的 customErrors 处理程序会根据需要启动。

标签: asp.net-mvciishttp-status-code-403

解决方案


403 是 iis 错误。看起来你的 asp.net 错误没有触发。您可以尝试在 web.config 文件中添加以下代码:

<httpErrors existingResponse="Replace" defaultResponseMode="ExecuteURL" errorMode="Custom"> 
<remove statusCode="403"/>
<error statusCode="403" path="/errorpage.aspx" responseMode="ExecuteURL"/>

您还可以使用 iis 管理器来修改更改:

1)打开iis管理器,选择你的站点。

2)双击错误页面。

在此处输入图像描述

3)按照以下建议或根据您的要求设置错误页面。

在此处输入图像描述

为什么 IIS 7 显示默认的 403 页面?

ASP MVC 5 - 403 customError 不工作


推荐阅读