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

Я рекомендую проверить образцы баз данных Microsoft SQL Server: https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks

The AdventureWorks sample использует очень четкое и последовательное соглашение об именах, которое использует имена схем для организации объектов базы данных.

  1. Сингулярные имена для таблиц
  2. Сингулярные имена для столбцов
  3. Имя схемы для префикса таблиц (например: SchemeName.TableName)
  4. Паскаль (например, верхний верблюд)

37
задан Rob Volk 2 June 2009 в 14:07
поделиться

3 ответа

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, который вам нужно будет включить, и раздел в целом должен содержать большинство, если не все эти элементы.

РЕДАКТИРОВАТЬ: Больше не требуется, так как теперь он включен по умолчанию:

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

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

27
ответ дан 27 November 2019 в 04:55
поделиться

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

<location path="admin/elmah.axd">
    <system.web>
        <authorization>
            <allow roles="Administrator" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>
11
ответ дан 27 November 2019 в 04:55
поделиться

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

<elmah>
<security allowRemoteAccess="0" />
..............
..............
</elmah>
9
ответ дан 27 November 2019 в 04:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: