Elmah.mvc - 替代生根

时间:2014-07-08 20:46:39

标签: c# asp.net-mvc asp.net-mvc-routing elmah

我安装了ELMAH.MVC nuget包,它记录了我的ASP.NET MVC错误。但是当我转到http://www.example.com/en-us/elmah时,页面没有样式,并显示以下错误:

公共行动方式'样式表'在控制器上没有找到Elmah.Mvc.ElmahController'

我有以下路线:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("content/{*pathInfo}");
        routes.IgnoreRoute("favicon.ico");

        routes.MapRoute(
        name: "users",
        url: "{culture}/users/{userUrl}",
        defaults: new
        {
            controller = "AccountProfile",
            action = "Index",
            culture = ""
        }
    );

        routes.MapRoute(
                        name: "SpecificCulture",
                        url: "{culture}/{controller}/{action}/{id}",
                        defaults: new
                        {
                            controller = "Home",
                            action = "Index",
                            id = UrlParameter.Optional,
                            culture = ""
                        }
                    );
    }

我的web.config appSettings

<appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="BaseAddress" value="http://localhost:3453/" />
    <add key="MailActive" value="true" />
    <add key="aspnet:UseHostHeaderForRequestUrl" value="true" />    
    <add key="elmah.mvc.disableHandler" value="false" />
    <add key="elmah.mvc.disableHandleErrorFilter" value="false" />
    <add key="elmah.mvc.requiresAuthentication" value="true" />
    <add key="elmah.mvc.IgnoreDefaultRoute" value="false" />
    <add key="elmah.mvc.allowedRoles" value="Administrator" />
    <add key="elmah.mvc.allowedUsers" value="*" />
    <add key="elmah.mvc.route" value="elmah" />  
</appSettings>

我相信问题出在我的路线上,但我真的不知道该怎么办。

任何帮助都会很棒

编辑

由Steve Newton吮吸我添加了以下路线:

    routes.MapRoute(
    name: "elmah",
    url: "{controller}/elmah",
    defaults: new
        {
            controller = "elmah",
            action = "Index",
        }
    );

由于

1 个答案:

答案 0 :(得分:0)

这看起来像提供的答案中描述的路由问题。为什么不保留Elmah的路由配置(密钥)并创建一个允许example.com/elmah的新路由? Elmah不会因文化而异,是一个干净的解决方案。