asp.net mvc - ELMAH-MVC 3-403-Prohibido: acceso denegado
asp.net-mvc elmah.mvc (2)
He instalado Elmah para MVC usando NuGet, puedo iniciar sesión con error de éxito en el db. El único problema es que no puedo acceder a la URL /elmah
para acceder a la página de registro de errores.
Aquí, parte de mi configuración, ¿podría indicar si tengo alguna configuración incorrecta?
Gracias
ERROR
403 - Prohibido: Acceso denegado.
No tiene permiso para ver este directorio o página con las credenciales que proporcionó.
En mi 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>
En 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
);
}
(Esto es todo desde la documentación / cómo comenzar)
No necesitas la siguiente línea:
routes.IgnoreRoute("elmah.axd");
La siguiente línea se ocupa de ello.
Todo lo que necesita configurar está en su archivo web.config
. Algo como:
<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>
Debería ponerte en marcha.
En caso de que alguien se encuentre con el mismo problema que tuve.
Este era mi código, que está mal:
<elmah>
<security allowremoteAccess="true" />
</elmah>
El problema era el r en allow r emoteAccess, estaba en minúsculas, ¡cuando debería haber sido en mayúsculas!
Código correcto:
<elmah>
<security allowRemoteAccess="true" />
</elmah>