帮助我已将以下配置添加到web.config
文件中:
<customErrors mode="On" defaultRedirect="~/errors/CustomError.aspx">
<error statusCode="403" redirect="~/Errors/PageNotFound.aspx" />
<error statusCode="404" redirect="~/Errors/PageNotFound.aspx"/>
</customErrors>
并在system.webServer
<httpErrors errorMode="Custom" existingResponse="PassThrough">
<remove statusCode="403" subStatusCode="-1" />
<error statusCode="403" prefixLanguageFilePath="" path="/errors/CustomError.aspx" responseMode="Redirect" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/errors/CustomError.aspx" responseMode="Redirect" />
</httpErrors>
出于安全原因,我不希望我的网络服务器宣布403/404。
进行上述更改后,我在尝试浏览目录时仍然收到403禁止消息。
唯一有效的方法是从IIS配置它:
如何告诉IIS去查看web.config设置而不是IIS?似乎错误是在管道中过早抛出 - 它完全忽略了web.config和asp.net管道的其余部分。
此外,错误绝对不会进入Glogal.Asax.cs Application_Error
函数。有没有办法确保错误总是通过asp.net路由?