微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc-3 – asp.net mvc 3和elmah.axd – 又是404

大家好,我知道这已经多次作为先前的问题发布,但我已经完成了每个问题和他们提出的解决方案,我仍然无法克服我的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 举报,一经查实,本站将立刻删除。

相关推荐