首页 > 解决方案 > IIS Web.Config 自定义 404 错误

问题描述

我几乎把头发扯掉了,这似乎很容易。

希望实现一个自定义的 404 错误页面,这是我的代码 - 看起来很简单,但它只是不起作用 - 任何想法。

在有人对此进行评分之前,我已经尝试了几乎所有线程,但同样的事情发生了,或者实际上没有。

<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/errors/e404.asp" responseMode="ExecuteURL" />
</httpErrors>

如果没有此代码,我会收到标准的 Windows 错误消息。

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, 
or is temporarily unavailable.

使用此代码,我得到一个不同的错误 - 但不是我的自定义页面。所以有些事情正在发生,只是不是我想要的。任何想法或指示将不胜感激。

This localhost page can’t be found No web page was found for the web address: https://localhost

标签: iisweb-config

解决方案


这里的问题几乎可以肯定是因为您使用了“ExecuteURL”而根本没有找到它。我能够通过使用 IIS Express 和 Visual Studio 2017 重现您遇到的问题。要对从 Sysinternals ( https://docs.microsoft.com/en-us/sysinternals/downloads/procmon ) 运行 ProcMon 进行故障排除并搜索您正在搜索的文件 (Test123) 以及您期望的错误文件 (e404.asp)。

重要的是要注意(正如其他人所说),使用 ExecuteURL 时,它必须是站点的相对路径,而不是 App 或 VDir。VS 和 IISExpress 在幕后处理大部分细节,因此更难确定站点/应用程序/VDir/等的级别。


推荐阅读