IIS7.5 上的编码平台 ASP.NET 4.0 WebForms
如果我请求页面 blahblah.aspx
这不存在,我被导航到我的自定义错误页面页面未找到异常。我已经实现了 URL 路由,因此我省略了所有路由的 .aspx 扩展名。
现在,如果我输入 www.mysite.com/blahblah
(那是一个没有扩展名的 url)而不是转到我的自定义错误页面,它被重定向到我的 IIS 404 错误页面。
我应该怎么做才能让我的自定义错误页面出现在我的网站上而不是 IIS 错误页面上?
最佳答案
简单的方法
如果您的 IIS 7 Web 服务器还没有它,请安装 IIS 7.0 Administration Pack来自微软。
导航到 IIS 中的根 Web 服务器名称,然后打开 Configuration Editor
(管理包的一部分)。将下拉列表更改为 system.webServer/httpErrors
, 右击 defaultPath
,然后选择 'defaultPath' Attribute -> Unlock Attribute
.
然后尝试再次更改自定义错误处理程序页面。导航到您的网站,打开 Error Pages
在 IIS 组下,单击 Edit Feature Settings
在右侧,选择 Custom error pages
最后,输入默认页面的路径。
这次没有锁定错误。
我最初尝试在网站级别解锁此属性但被阻止,因此请注意,您可能必须一直到 IIS 树的根目录,即 Web 服务器本身。
手动方式
我知道您可以通过在记事本中直接编辑 Web 服务器上的相应配置文件来完成所有这些工作。这可能是您特定的网络托管环境或公司生产网络服务器更改协议(protocol)所必需的。但是,如果不需要,为什么要让它变得复杂呢?另外,通过这种方式,您可以在 GUI 中进行操作,并比较之前和之后的结果,看看您真正需要进行哪些更改。但是,如果您必须手动操作,那么:
打开文件%windir%\System32\inetsrv\config\applicationHost.config
在记事本中。如果遇到问题,请以管理员身份运行记事本。
专业提示:不要使用 notepad++ 编辑 applicationHost.config。您最终会 secret 地、静默地保存文件的 32 位副本,该副本位于与 IIS 所查看的文件夹不同的文件夹中(由于 Windows,而不是 np++),而不会实际影响您希望更改的文件。
你会看到这样的东西:
<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
删除
,defaultPath
部分并保存。您将能够进行所需的更改。
关于asp.net - 为 URL 路由中的页面强制使用自定义 404 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6290517/