【发布时间】:2011-02-15 15:01:23
【问题描述】:
我有一个处理 404 错误的 HttpHandler,这是我多年前实施的一种 url 路由方式。如果请求映射到有效页面,它会重定向到该页面。否则,它会返回 404。(我知道我应该开始使用 asp.net 4.0 的新路由功能,但这需要一些时间。我需要尽快让它工作。)
在 IIS6 中,我已将 404 错误映射到“/404.ashx”。在 web.config 中,自定义错误设置如下:
<customErrors mode="On" defaultRedirect="error.aspx">
<error statusCode="404" redirect="/404.ashx"/>
</customErrors>
和 http 处理程序:
<httpHandlers>
<add verb="GET" path="404.ashx" type="myNamespace.PageNotFoundHandler,myAssemblyName"/>
</httpHandlers>
这已经工作了很多年——当我将网站更改为使用 asp.net 4.0 时它就停止工作了。一切都为 4.0 重新编译,没有代码更改。
现在,当我点击其中一个曾经有效的网址时,我得到一个带有 404 错误代码的空白页面。如果我删除 IIS 404 错误映射,我会得到一个常规的旧 404 页面。似乎没有调用httphandler。
我还有其他运行良好的 http 处理程序。
我已将注册表中的 EnableExtensionlessUrls 项设置为 0,建议 here 和其他地方。
我想一定有一些我错过的配置设置或类似的东西。当然,这只是我的生产服务器上的问题,所以我无法在调试器中运行它来查看发生了什么。如果没有什么简单的事情发生,我会在我的系统中插入一些额外的日志来帮助追踪它。
关于我还能检查什么的任何想法?
【问题讨论】:
-
不仅你没有接受任何问题,你甚至没有投票其他问题...... - 保持你的投票安全。
-
我已经问了 5 个问题(包括这个)。只有一个人得到了回答,我把它归功于。我刚刚检查了那个问题,由于某种原因,标记的答案不见了。
-
你只投票了 42 次,声望 7k !!!
标签: asp.net iis-6 asp.net-4.0