我有一个HttpHandler,它负责处理404错误,这是我多年前实现的一种URL路由方式。如果请求映射到有效页面,它将重定向到该页面。 (我知道我应该开始使用asp.net 4.0的新路由功能,但这需要一些时间,我需要尽快完成)HttpHandler 404错误在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和其他地方。
我想必须有一些配置设置我错过了或类似的东西。当然,这只是我的生产服务器上的一个问题,所以我不能在调试器中运行它来查看发生了什么。如果不容易出现,我会在我的系统中插入一些额外的日志记录以帮助追踪它。
关于我还能检查什么的任何想法?
不仅你没有接受任何问题,你甚至没有投其他问题... - 保持你的票保险。 – Aristos 2011-02-15 16:05:55