Как настроить ELMAH для работы с Windows Azure? Я получаю 404 на Elmah.axd

голоса
36

У меня есть веб-роль ASP.NET MVC, работающих на Windows Azure и имеют настройки ELMAH должным образом в web.config. У меня также есть мой global.asax игнорировать * .axd маршруты. Локально, я могу загрузить /elmah.axd, однако, когда я раскрываю к Azure, я получаю 404 на этой странице. Кто-нибудь получил ELMAH работает над Azure?

Задан 02/06/2009 в 15:07
источник пользователем
На других языках...                            


3 ответов

голоса
26

Azure основан на Windows Server 2008 и IIS7. Это означает, что вам нужно заполнить system.webServer часть файла web.config.

Пример файла в комплекте с исходным кодом Elmah содержит детали, которые нужно положить в.

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

Есть 2 Elmah линии в приведенном выше блоке XML, что вам нужно будет включить и раздел в целом должен содержать большинство, если не все из этих элементов в любом случае.

EDIT: больше не требуется, так как это теперь по умолчанию:

Для Elmah работы вам также необходимо изменить следующую строку в файл ServiceDefinition.csdef:

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

Ответил 10/06/2009 в 21:25
источник пользователем

голоса
9

Я думаю , что дополнительно (к тому , что было предложено @ mat1t здесь ) , вы , возможно , потребуется установить удаленный доступ к 1:

<elmah>
<security allowRemoteAccess="0" />
..............
..............
</elmah>
Ответил 15/06/2009 в 08:14
источник пользователем

голоса
11

Также защитить этот файл, так только разрешенные пользователи могут просматривать журналы ошибок!

<location path="admin/elmah.axd">
    <system.web>
        <authorization>
            <allow roles="Administrator" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>
Ответил 06/07/2009 в 21:25
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more