Wie ELMAH zu konfigurieren, um mit Windows Azure zu arbeiten? Ich erhalte eine 404 auf Elmah.axd

StackOverflow https://stackoverflow.com/questions/939783

Frage

Ich habe eine Web-Rolle ASP.NET MVC auf Windows Azure ausgeführt werden und Setup ELMAH richtig in der web.config. Ich habe auch meine global.asax * .axd Routen ignorieren. Vor Ort, ich bin jedoch laden /elmah.axd können, wenn ich zu Azure bereitstellen, habe ich ein 404 auf dieser Seite zu bekommen. Hat jemand bekommen ELMAH auf Azure arbeiten?

War es hilfreich?

Lösung

Azure basiert auf Windows Server 2008 und IIS7. Das bedeutet, dass Sie den system.webServer Teil der Datei web.config füllen müssen.

Die Beispieldatei mit Elmah Quellcode enthalten enthält die Details, die Sie benötigen in setzen.

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

Es gibt 2 Elmah Zeilen in dem obigen Block von XML, die Sie enthalten müssen, und der Abschnitt im Allgemeinen sollten die meisten enthalten, wenn nicht alle diese Elemente trotzdem.

EDIT: Wird nicht mehr benötigt, da dies nun standardmäßig eingeschaltet ist:

Für Elmah arbeiten Sie auch die folgende Zeile in Ihrer ServiceDefinition.csdef Datei benötigen ändern:

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

Andere Tipps

Auch die Datei sichern, so dass nur erlaubt Benutzern die Fehlerprotokolle anzeigen können!

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

Ich denke, zusätzlich (zu dem, was vorgeschlagen von @ mat1t hier ) Sie benötigen einen Fernzugriff auf 1 setzen:

<elmah>
<security allowRemoteAccess="0" />
..............
..............
</elmah>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top