创建了一个新的具有集成.NET 4.0应用程序池的IIS7网站。
以.aspx结尾的URL显示自定义404,而其他任何URL都会显示蓝色服务器错误页面 "HTTP Error 404.0 - Not Found The resource you are looking for has been removed, had its name changed, or is temporarily unavailable." (所以与IE无关)
<customErrors redirectMode="ResponseRewrite" mode="On" defaultRedirect="/pages/404.aspx" />
</system.web>
<system.webServer>
<httpErrors >
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/pages/404.aspx" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
也尝试过
<httpErrors existingResponse="PassThrough" />
但是这只导致了一个空响应。
我只找到了一篇关于执行appcmd测试自定义http错误处理的有用性的参考,但这里是结果。
C:\Windows\System32\inetsrv>appcmd list config "http://mysite/file.notexist" -section:httpErrors
<system.webServer>
<httpErrors>
<error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="401.htm" />
<error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="403.htm" />
<error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="404.htm" />
<error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="405.htm" />
<error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="406.htm" />
<error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="412.htm" />
<error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="500.htm" />
<error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="501.htm" />
<error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="502.htm" />
</httpErrors>
</system.webServer>
这很奇怪,因为在iis7管理器中显示了错误页面。
404 /pages/404.aspx Execute URL Local
.Net错误页面没有显示任何内容,尽管我已经在其中有一个条目。
问题1:对于每个404结果,我需要采取哪些步骤才能使完全新的asp .net 4 iis7站点具有自定义的.net错误页面?
问题2:为什么.net处理程序只适用于.aspx文件而不适用于其他任何文件?
注意:将404设置为服务器级别,然后使用appcmd命令显示了路径中的自定义404,但对于未显示404的站点没有任何影响。
因此,我猜这是一个误导。
httpErrors
节点ä¸æ·»åŠ 属性existingResponse="Replace" errorMode="Custom"
。 - Concept211