35

我已经使用 NuGet为 MVC 安装了 Elmah,我能够在数据库中登录成功错误。唯一的问题是我无法访问/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>

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
        );
    }
4

3 回答 3

50

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

您不需要以下行:

routes.IgnoreRoute("elmah.axd");

下一行负责处理它。

您需要配置的所有内容都在您的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>

应该让你去。

于 2012-12-07T15:31:58.420 回答
34

以防万一有人遇到我遇到的同样问题。

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

<elmah>
    <security allowremoteAccess="true" />
</elmah>

问题是允许 r emoteAccess 中r,它是小写的,而它应该是大写的!

正确代码:

<elmah>
    <security allowRemoteAccess="true" />
</elmah>
于 2014-11-19T16:09:00.950 回答
2

即使我已将远程访问添加到我的 web.config:

<add key="elmah.mvc.allowedRoles" value="adminrole" />  

<elmah>
      <security allowRemoteAccess="true" />
      <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="DefaultConnection" />
      </elmah>

我必须在服务器上编辑 Elmah.Athz.config 并添加我想授予 elmah 访问权限的角色。我不得不添加^adminrole

于 2019-01-11T06:11:27.850 回答