我正在尝试将自定义错误页面用于任何未经处理的URL或磁盘上的有效文件。
我现在有以下设置:
<system.web>
<customErrors mode="On" defaultRedirect="~/Error">
<error statusCode="404" redirect="~/Error/Error404" />
<error statusCode="500" redirect="~/Error" />
</customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Detailed" defaultResponseMode="ExecuteURL">
<remove statusCode="404" />
<remove statusCode="500" />
<error responseMode="ExecuteURL" statusCode="404" path="/Error/Error404" />
<error responseMode="ExecuteURL" statusCode="500" path="/Error" />
</httpErrors>
</system.webServer>
这会正确重定向以下网址:
/test
/test/foo/bar
但是,包含句点的任何内容都会显示以下消息:
0x80070002
https://localhost/test.txt
C:\foo\test.txt
我需要这些网址也会重定向到我的自定义错误页面。
答案 0 :(得分:0)
尝试使用
<httpErrors errorMode="Custom" .. />
但是,要小心。我发现我有时会得到循环条件或IIS错误页面将在我的自定义错误模块之前执行。 IIS和ASP.NET应用程序之间的接口并不总是很好。我似乎仍然无法找到一种方法来捕获ASP.NET中的静态文件404,否则会陷入静态文件处理程序。