다음을 통해 공유


httpErrors에서 errorMode 위임

작성자 : Walter Oliver

경고: 이 기능은 현재 IIS 7.0에서 예상대로 작동하지 않습니다. 다음 릴리스에 대해 해결 중입니다. IIS 7.0에서는 특정 사이트 또는 전체 서버에 대해 HTTP 오류를 잠그고 잠금을 해제할 수 있습니다. 그러나 현재 httpErrors에 대해 "lockAllAttributesExcept="errorMode"가 작동하지 않습니다. 그러나 다른 IIS 구성 섹션에서 특정 특성의 잠금을 해제하는 방법에 대한 이 문서의 아이디어를 사용할 수 있습니다.

호스트가 전체 섹션을 위임하지 않고 "applicationhost.config" 파일에서 고객에게 특정 설정을 위임해야 하는 경우가 있습니다. httpErrors 섹션의 errorMode 설정은 그 중 하나이고, 다른 하나는 ASP 섹션의 scriptErrorSentToBrowser 설정입니다. 문제 해결을 위해 호스트의 고객은 원격 클라이언트에서 자세한 오류를 표시할 수 있습니다. 이를 사용하도록 설정하려면 호스트가 errorMode(lockAllAttributesExcept="errorMode")를 제외한 모든 특성을 잠그고 오류 요소(lockElements="error")를 잠가야 합니다. 이렇게 하면 고객이 errorMode를 "detailedLocalOnly"에서 "Detailed"로 변경할 수 있으며 모든 오류에 대해 자세한 오류가 발생합니다.

errorMode 설정을 위임하려면 다음을 수행합니다.

  1. 텍스트 편집기로 열고 %windir%\system32\inetsrv\config\applicationhost.config name="httpErrors" overrideModeDefault="Deny" /> 요소를 다음과 같이 변경<하여 overrideModeDefault를 통해 applicationhost.config 섹션의 <httpErrors> 위임을 허용합니다.

    <section name="httpErrors" overrideModeDefault="Allow" />
    
  2. lockAllAttributesExcept 및 lockElements를 사용하여 errorMode 설정의 위임만 허용하고 요소를 찾아 <httpErrors> 다음과 같이 변경합니다.

    <httpErrors lockAllAttributesExcept="errorMode" lockElements="error" >
    

    httpErrors 섹션은 변경 후 다음과 같이 표시될 수 있습니다.

    <httpErrors lockAllAttributesExcept="errorMode" lockElements="error"> 
      <error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="401.htm" />
      <error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="403.htm" />
      <error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="404.htm" />
      <error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="405.htm" />
      <error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="406.htm" />
      <error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="412.htm" />
      <error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="500.htm" />
      <error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="501.htm" />
      <error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="502.htm" />
    </httpErrors>
    
  3. 이제 호스트가 appcmd를 사용하여 errorMode 설정을 "Detailed" 또는 "Custom"으로 설정할 수 있습니다(아래 예제 참조).

    %windir%\system32\inetsrv\appcmd set config "Default Web Site" -section:httpErrors -errorMode:Detailed
    

    또는 고객에게 web.config 파일에 다음 문을 입력하도록 요청할 수 있습니다.

    <system.webServer>
       <httpErrors errorMode="Detailed"/>
    </system.webServer>
    

리소스

자세한 내용은 다음을 참조하세요.