37 votes

Comment configurer ELMAH pour fonctionner avec Windows Azure? Je reçois un 404 sur Elmah.axd

J'ai un rôle Web ASP.NET MVC s'exécutant sur Windows Azure et j'ai correctement configuré ELMAH dans le fichier web.config. J'ai aussi mon global.asax ignore * routes .axd. Au niveau local, je suis capable de charger /elmah.axd, mais lorsque je déploie sur Azure, je reçois un 404 sur cette page. Est-ce que quelqu'un a obtenu qu'ELMAH travaille sur Azure?

27voto

Matthew Steeples Points 4637

Azure est basé sur Windows Server 2008 et IIS7. Cela signifie que vous avez besoin pour remplir le système.serveur web.fichier de configuration.

L'exemple de fichier inclus avec elmah code source contient les détails que vous avez besoin de mettre en.

<system.webServer>
  <validation validateIntegratedModeConfiguration="false"/>
  <modules>
    <remove name="ScriptModule" />
    <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
  </modules>
  <handlers>
    <remove name="WebServiceHandlerFactory-Integrated"/>
    <remove name="ScriptHandlerFactory" />
    <remove name="ScriptHandlerFactoryAppServices" />
    <remove name="ScriptResource" />
    <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
         type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
         type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add name="elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
  </handlers>
</system.webServer>

Il y a 2 elmah lignes dans le bloc ci-dessus de xml que vous aurez besoin de comprendre, et la section générale doit contenir la plupart, si pas tous les éléments de toute façon.

EDIT: il N'est plus nécessaire car il est maintenant activé par défaut):

Pour Elmah au travail, vous aurez également besoin de modifier la ligne suivante dans votre ServiceDefinition.csdef fichier:

<WebRole name="WebRole" enableNativeCodeExecution="true">

11voto

KevinUK Points 1886

Sécurisez également le fichier afin que seuls les utilisateurs autorisés puissent consulter les journaux des erreurs!

 <location path="admin/elmah.axd">
    <system.web>
        <authorization>
            <allow roles="Administrator" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>
 

9voto

TheVillageIdiot Points 22158

Je pense qu’en plus (à ce que suggère @ mat1t ici ), vous devrez peut-être définir l’accès à distance à 1:

 <elmah>
<security allowRemoteAccess="0" />
..............
..............
</elmah>
 

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