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

J'ai installé l'elmah.MVC nuget package et a 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 pour voir un rapport des erreurs. Cependant, lorsque j'essaie d'accéder à / elmah en production, j'obtiens deux erreurs, d'abord une erreur de serveur 403 access is denied. Puis dans mon email (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 réparer? Grâce.

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 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 à la fois elmah.axd et simplement ~/elmah. Tous donnent toujours la même erreur, et fonctionne toujours localement, mais pas en production.

Edit: cela fonctionne également lorsque je me trouve à distance dans le serveur et que j'y accède via un navigateur (sans utiliser localhost, mais l'adresse réelle du site). Alors quelle permission ne suis je pas avoir? On dirait que c'est au niveau du serveur.

53
demandé sur SventoryMang 2012-07-26 21:09:07

2 réponses

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

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

J'ai toujours l'impression d'oublier moi-même et de passer quelques minutes à me gratter la tête ;)

117
répondu Paige Cook 2012-07-27 02:45:54

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

<system.webServer>
  <httpHandlers>
    <add name="elmah" verb="GET" path="elmah.axd"  type="Elmah.ErrorLogPageFactory, Elmah"/>
  </httpHandlers>
</system.webServer>
1
répondu scottm 2017-06-25 07:09:29