大家好,我知道这已经多次作为先前的问题发布,但我已经完成了每个问题和他们提出的解决方案,我仍然无法克服我的404问题.我正在运行Elmah 1.1 32位.我已经提到了
ASP.NET MVC – Elmah not working and returning 404 page for elmah.axd,但在应用这些建议后我没有运气.
我正在运行ASP.NET MVC 3.这是我的web.config:
…
<httpHandlers> <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory,Elmah" /> </httpHandlers> <httpModules> <add name="ErrorLog" type="Elmah.ErrorLogModule,Elmah"/> <add name="ErrorMail" type="Elmah.ErrorMailModule,Elmah" /> <add name="ErrorFilter" type="Elmah.ErrorFilterModule,Elmah" /> </httpModules>
…
<errorLog type="Elmah.sqlErrorLog,Elmah" connectionStringName="dbconn" /> <errorFilter> <test> <jscript> <expression> <![CDATA[ // @assembly mscorlib // @assembly System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a // @import System.IO // @import System.Web HttpStatusCode == 404 || BaseException instanceof FileNotFoundException || BaseException instanceof HttpRequestValidationException /* Using RegExp below (see http://msdn.microsoft.com/en-us/library/h6e2eb7w.aspx) */ || Context.Request.UserAgent.match(/crawler/i) || Context.Request.ServerVariables['REMOTE_ADDR'] == '127.0.0.1' // IPv4 only ]]> </expression> </jscript> </test> </errorFilter>
我使用以下方法忽略了我的.axd路由:
routes.IgnoreRoute( “{}资源个.axd / {*} PATHINFO”);
我在IIS7上运行该站点,启用了32位模式.我尝试了很多不同的配置选项,但都无济于事.有任何想法吗?
谢谢
山
解决方法
我的错.我的.axd忽略路由规则在默认路由映射后排序.默认路由映射规则与URL elmah.axd匹配.我想我没有意识到忽略规则必须列在这条路线之上.谢谢大家的帮助!
routes.MapRoute( "Default",// Route name "{controller}/{action}/{id}",// URL with parameters new { controller = "Home",action = "Index",id = UrlParameter.Optional } // Parameter defaults ); routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
只需移动routes.IgnoreRoute(“{resource} .axd / {* pathInfo}”);在默认路由映射解决此问题之前.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。