55 votes

Impossible d’accéder à / elmah sur le serveur de production avec Elmah MVC?

J'ai installé le elmah.mvc package nuget et gardé la configuration par défaut de que sans la configuration de l'envoi d'un e-mail et de le brancher dans une base de données SQL.

Sur ma machine locale lorsque j'utilise l'hôte Visual Studio, je peux ouvrir mon application et l'accès /elmah beau de voir un rapport d'erreurs. Cependant, lorsque j'essaie d'accès et /elmah sur la production, j'obtiens deux erreurs, j'ai d'abord obtenir un 403 access is denied d'erreur du serveur. Ensuite dans mon e-mail (à partir de elmah) j'obtiens:

System.Web.HttpException: Server cannot set status after HTTP headers have been sent.

Quelqu'un sait ce qui se passe ici et comment les corriger? Merci.

J'ai essayé ce qui suit, jusqu'à présent, comme suggéré par les réponses ci-dessous:

En <system.webServer>

<handlers>
  <add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</handlers>

Et dans <system.web>

<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>

J'ai essayé de définir le chemin d'accès à la fois elmah.axd et simplement ~/elmah. Tous donnent toujours la même erreur, et encore fonctionne en local, mais pas en production.

Edit: Il a vraiment travaille quand j'ai à distance sur le serveur et y accéder via un navigateur sur n' (ne pas l'utiliser localhost, mais le site actuel de l'adresse). Donc, ce que l'autorisation ne suis-je pas avoir? On dirait que c'est au niveau du serveur.

118voto

Paige Cook Points 13415

Vous devez activer Elmah pour l'accès à distance en ajoutant le paramètre de configuration suivant à la section <elmah> de votre fichier web.config. Le paramètre par défaut pour cette valeur est false, ce qui n'autorise que localhost, d'où son fonctionnement sur votre ordinateur local à partir de Visual Studio.

    <elmah>
      <security allowRemoteAccess="true"/>
   </elmah>
 

Je semble toujours oublier cela moi-même et passer quelques minutes à me gratter la tête;)

1voto

scottm Points 13578

Assurez-vous que HttpHandler est défini dans la section webServer de votre fichier web.config.

 <system.webServer>
  <httpHandlers>
    <add name="elmah" verb="GET" path="elmah.axd" type=type="Elmah.ErrorLogPageFactory, Elmah"/>
  </httpHandlers>
</system.webServer>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X