ELMAH - MVC 3 - 403 - Запрещено: доступ запрещен
Я установил Elmah для MVC с помощью NuGet, я могу войти с ошибкой успеха в db.
Единственная проблема заключается в том, что я не могу получить доступ к URL /elmah
для доступа к странице журнала ошибок.
Вот часть моей конфигурации, не могли бы вы указать, есть ли у меня какая-то неправильная конфигурация?
Спасибо
ОШИБКА
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
);
}
Ответы
Ответ 1
(Все это из документации/начала работы)
Вам не нужна следующая строка:
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>
Должно получиться.
Ответ 2
На всякий случай кто-то сталкивается с той же проблемой, что и я.
Это был мой код, что неверно:
<elmah>
<security allowremoteAccess="true" />
</elmah>
Проблема заключалась в r в разрешении r emoteAccess, это было в нижнем регистре, когда оно должно быть в верхнем регистре!
Правильный код:
<elmah>
<security allowremoteAccess="true" />
</elmah>
Ответ 3
Хотя я добавил удаленный доступ к своему 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