我看到了类似的问题,但看起来似乎是由于一个无关的问题。
在3.5中,我有一个自定义错误处理程序,可记录错误并重定向用户。我的web.config设置如下:
<httpHandlers>
<add path="error.ashx" type="MySite.Tools.WebErrorLogger, MySite.Tools" verb="*"/>
</httpHandlers>
<customErrors mode="On" defaultRedirect="error.ashx"
redirectMode="ResponseRewrite">
</customErrors>
当redirectMode设置为"ResponseRedirect"
时,一切正常(但Server.GetLastError()为null但似乎是有意的)
但是,使用ResponseRewrite
时,我的处理程序未被调用,我看到ASP.Net默认错误页面。我对如何做到这一点有任何想法?
(遗憾的是,由于其他限制,我无法使用aspx页面或在global.asax中进行错误处理)
答案 0 :(得分:0)
好吧,我过去曾问pretty similar question。
解决方案是将错误页面转换为静态HTML页面 当然,动态页面上肯定会出现某种错误,但我找不到它。
答案 1 :(得分:0)
我遇到了同样的问题,我发现显然原因是.ashx文件,如果你使用正常的.aspx它会起作用,它对我有用;我仍然试图了解如何使用REsponseRewrite“启用”.ashx文件扩展名,因为它更合乎逻辑,而不是在我的情况下使用aspx页面。我在这里有一个关于这个主题的开放主题:
http://social.msdn.microsoft.com/Forums/it-IT/aspnetit/thread/7b8f5e36-44a8-40ea-bd73-2e99a1fd42dd
答案 2 :(得分:0)
当前.NET中没有办法使用ashx
处理程序(从4.5开始)。
ResponseRewrite
使用HttpServerUtility.Execute
,它被硬编码为仅允许aspx页面或静态文件(或旧版ASP页面)。