ELMAH - MVC 3 - 403 - 禁止访问:访问被拒绝

Gib*_*boK 34 asp.net-mvc elmah elmah.mvc

我已经使用NuGet 为MVC安装了Elmah,我能够在db中登录成功错误.唯一的问题是我无法访问/elmahURL来访问错误日志页面.

这是我配置的一部分,如果我有任何错误配置,请指出一下吗?

谢谢

错误

403 - 禁止访问:访问被拒绝.
您无权使用您提供的凭据查看此目录或页面.

在我的web.config:

  <appSettings>
    <add key="webpages:Version" value="1.0.0.0" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" 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.allowedRoles" value="Administrator" />
    <add key="elmah.mvc.route" value="elmah" />
  </appSettings>
Run Code Online (Sandbox Code Playgroud)

global.asax:

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

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
    }
Run Code Online (Sandbox Code Playgroud)

Eri*_*ips 49

(这完全来自文档/入门)

您不需要以下行:

routes.IgnoreRoute("elmah.axd");
Run Code Online (Sandbox Code Playgroud)

下一行负责处理它.

您需要配置的所有内容都在您的web.config文件中.就像是:

<elmah>
  <security allowRemoteAccess="yes" />
  <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="mySqlConnString" />
</elmah>
<location path="elmah.axd">
  <system.web>
    <authorization>
      <allow roles="Administrator" />
      <deny users="*" />
    </authorization>
  </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

应该让你去.

  • 很可能Emlah已经更新,而且我使用的是较旧的配置.我认为重要的部分是`allowRemoteAccess`并确保你被认证为jrummell. (9认同)
  • 对于MVC,您将使用带有<add key ="elmah.mvc.route"value ="elmah"/>等条目的appSettings.安装此NuGet并适当修改您的配置:https://www.nuget.org/packages/Elmah.MVC (3认同)

Pro*_*ech 31

以防万一我遇到同样的问题.

这是我的代码,这是错误的:

<elmah>
    <security allowremoteAccess="true" />
</elmah>
Run Code Online (Sandbox Code Playgroud)

问题是- [R在允许[R emoteAccess,它是在较低的情况下,它应该是大写!

正确的代码:

<elmah>
    <security allowRemoteAccess="true" />
</elmah>
Run Code Online (Sandbox Code Playgroud)

  • 我感觉到你的痛苦. (7认同)
  • 好答案!虽然Elmah.MVC将大部分必要的配置添加到web.config,但缺少此行. (2认同)