J'ai installé le paquet de nuget elmah.mvc et conservé la configuration par défaut de ce sans configurer l'envoi d'un e-mail et 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 accéder à/elmah très bien pour voir un rapport des erreurs. Cependant, lorsque j'essaie d'accéder à/elmah en production, j'obtiens deux erreurs, d'abord j'obtiens un 403 access is denied
erreur du serveur. Ensuite, dans mon e-mail (d'Elmah), je reçois:
System.Web.HttpException: Server cannot set status after HTTP headers have been sent.
Quelqu'un sait ce qui se passe ici et comment y remédier? Merci.
J'ai essayé ce qui suit dans la mesure suggérée par les réponses ci-dessous:
Dans <system.webServer>
<handlers>
<add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</handlers>
Et en <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 aux deux elmah.axd
et simplement ~/elmah
. Tous donnent toujours la même erreur et fonctionnent toujours localement, mais pas en production.
Edit: Cela fonctionne également lorsque je me connecte au serveur et y accède via un navigateur (pas en utilisant localhost, mais l'adresse réelle du site). Alors, quelle permission n'ai-je pas? On dirait que c'est au niveau du serveur.
Vous devez activer Elmah pour l'accès à distance en ajoutant le paramètre de configuration suivant au <elmah>
section dans votre fichier web.config. Le paramètre par défaut de cette valeur est false, ce qui n'autorise que localhost, d'où la raison pour laquelle il fonctionne sur votre ordinateur local à partir de Visual Studio.
<elmah>
<security allowRemoteAccess="true"/>
</elmah>
J'ai toujours l'impression de l'oublier moi-même et de passer quelques minutes à me gratter la tête;)
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="Elmah.ErrorLogPageFactory, Elmah"/>
</httpHandlers>
</system.webServer>