web-dev-qa-db-fra.com

ELMAH - MVC 3 - 403 - Interdit: l'accès est refusé

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
        );
    }
32
GibboK

(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.

47
Erik Philips

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>
25
ProxyTech

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

0
davaus