我已经使用NuGet安装了Elmah for MVC,我能够在db中登录成功错误。
唯一的问题是我无法访问/elmah
URL来访问错误日志页面。
这是我配置的一部分,如果我有任何错误配置,请指出一下吗?
由于
ERROR
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
);
}
答案 0 :(得分:48)
(这完全来自文档/入门)
您不需要以下一行:
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>
应该让你去。
答案 1 :(得分:29)
万一有人遇到同样的问题。
这是我的代码,这是错误的:
<elmah>
<security allowremoteAccess="true" />
</elmah>
问题是允许 r emoteAccess中的 r ,它是小写的,应该是大写的!
正确的代码:
<elmah>
<security allowRemoteAccess="true" />
</elmah>
答案 2 :(得分:0)
即使我已将远程访问添加到我的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