J'ai installé Elmah pour MVC avec NuGet, je suis capable de me connecter avec une erreur de succès dans la base de données. Le seul problème est que je ne peux pas accéder à l'URL /elmah
pour accéder à la page de journal des erreurs.
Ici une partie de ma configuration, pourriez-vous s'il vous plaît indiquer si j'ai une mauvaise configuration?
Merci
ERREUR
403 - Interdit: l'accès est refusé.
Vous n'êtes pas autorisé à afficher ce répertoire ou cette page à l'aide des informations d'identification que vous avez fournies.
Dans mon 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>
Dans 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
);
}
(Tout est dans la documentation/pour commencer)
Vous n'avez pas besoin de la ligne suivante:
routes.IgnoreRoute("elmah.axd");
La ligne suivante s'en occupe.
Tout ce que vous devez configurer se trouve dans votre fichier web.config
. Quelque chose comme:
<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>
Devrait vous y aller.
Juste au cas où quelqu'un tomberait sur le même problème que moi.
C'était mon code, ce qui est faux:
<elmah>
<security allowremoteAccess="true" />
</elmah>
Le problème était le r in permettre r emoteAccess, c'était en minuscule, alors que ça aurait dû être en majuscule!
Code correct:
<elmah>
<security allowRemoteAccess="true" />
</elmah>
Même si j'avais ajouté l'accès à distance à mon web.config:
<add key="elmah.mvc.allowedRoles" value="adminrole" />
<elmah>
<security allowRemoteAccess="true" />
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="DefaultConnection" />
</elmah>
Je devais éditer Elmah.Athz.config sur le serveur et ajouter le rôle que je voulais donner à elmah. Je devais ajouter ^adminrole