我有自定义404.htm的asp.net网站。 它配置了customErrors部分来处理aspx。
<customErrors mode="On" defaultRedirect="404.htm">
<error statusCode="403" redirect="404.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>
<system.webServer>
<httpErrors>
<error statusCode="404" path="404.htm" />
<error statusCode="500" path="404.htm" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true">
...
</system.webServer>
它很好地处理了wrongname.aspx。但是对于非aspx请求,例如wrongname.htm,IIS7仍然会返回通用错误消息,而不是我的自定义。如何强制他这样做,比如说,这个网站的所有错误,包括500?我应该编写一个模块,还是可以以声明方式编写?
答案 0 :(得分:0)
您可以通过网站的IIS设置为大多数HTTP错误设置自定义错误页面。 (在IIS 5中,这是属性 - >自定义错误选项卡,不确定在IIS7中找到它的位置)
答案 1 :(得分:0)
为了应用自定义404,必须设置IIS的approrpiate位以处理您正在使用的扩展。
对于IIS7中的集成管道,我认为(虽然IIS7让人生活有趣),默认是处理所有扩展。
首先检查你是否已经在Classic或Integrated中运行应用程序 - 如果前者那么将成为问题的一部分,如果是后者......我必须每次都这样做(我没有做得够好。)
答案 2 :(得分:0)
在本地测试时,除非您向httpErrors
,errorMode="Custom"
添加属性,否则iis7会向您显示一般错误消息。您需要修改C:\Windows\System32\inetsrv\config\applicationHost.config
以允许此操作。