source

Windows Azure에서 동작하도록 ELMAH를 설정하는 방법엘마에게 404점을 줬어도끼

manycodes 2023. 4. 21. 21:04
반응형

Windows Azure에서 동작하도록 ELMAH를 설정하는 방법엘마에게 404점을 줬어도끼

ASP가 있어요.Windows Azure에서 실행되고 있으며 web.config에서 ELMAH가 올바르게 설정되어 있다.또한 global.asax는 *.axd 루트를 무시합니다.로컬로 /elmah를 로드할 수 있습니다.Axd, 하지만 Azure에 배치하면 그 페이지에 404가 표시됩니다.ELMAH가 애저에 대해 연구한 사람?

Azure는 Windows Server 2008 및 IIS7을 기반으로 합니다.즉, 시스템을 장착해야 합니다.web.config 파일의 webServer 부분.

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>

위의 xml 블록에는 2개의 elmah 행이 포함되어 있어야 합니다.일반적인 섹션에는 이들 요소가 모두 포함되어 있지는 않더라도 대부분 포함되어 있어야 합니다.

편집: 이 기능은 기본적으로 켜져 있으므로 더 이상 필요하지 않습니다.

또한 Elmah가 작동하려면 ServiceDefinition.csdef 파일에서 다음 행을 변경해야 합니다.

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

또한 허용된 사용자만 오류 로그를 볼 수 있도록 파일을 보호합니다.

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

(여기서 @mat1t에서 제안하는 내용에 따라) 리모트액세스를 1로 설정해야 할 수도 있습니다.

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

언급URL : https://stackoverflow.com/questions/939783/how-to-configure-elmah-to-work-with-windows-azure-i-get-a-404-on-elmah-axd

반응형