共用方式為


在 HTTPErrors 中委派 errorMode

作者 :Olive Oliver

警告此功能目前無法在 IIS 7.0 中如預期般運作。下一個版本正在處理。在 IIS 7.0 中,您可以鎖定和解除鎖定特定網站或整個伺服器的 HTTP 錯誤;但目前,「lockAllAttributesExcept=」errorMode「 不適用於 HTTPErrors。不過,您可以使用本文中有關解除鎖定其他 IIS 組態區段中特定屬性的概念

在某些情況下,主機人員可能需要委派給「applicationhost.config」檔案中的客戶特定設定,而不委派整個區段,HTTPErrors 區段中的 errorMode 設定是其中一個,另一個則是 ASP 區段中的 scriptErrorSentToBrowser 設定。 為了進行疑難排解,主機廠商的客戶可能會想要在遠端用戶端中顯示詳細錯誤。 若要啟用它,主機程式必須鎖定 errorMode 以外的所有屬性, (lockAllAttributesExcept=「errorMode」) ,並將錯誤元素鎖定 (lockElements=「error」) 。 如此一來,客戶可以將 errorMode 從 「detailedLocalOnly」 變更為 「Detailed」,而且他們會收到所有錯誤的詳細錯誤。

若要委派 errorMode 設定:

  1. 透過 overrideModeDefault 開啟並變更 < 區段名稱=「HTTPErrors」 overrideModeDefault=「Deny」 / 元素,以允許透過 overrideModeDefault %windir%\system32\inetsrv\config\applicationhost.config 中的 > 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>
    

資源

如需詳細資訊,請參閱: