開啟 IIS 網頁時出現「HTTP Error 500.19 - Internal Server Error」錯誤

本文解決 Internet Information Services (IIS) 7.0 和更新版本中的 web 應用程式上收到「HTTP 500.19」錯誤訊息的問題。

原始產品版本:Internet Information Services 7.0 和更新版本
原始 KB 編號: 942055

要解決此錯誤,請查看以下小節,瞭解適當的錯誤代碼資訊。

HRESULT 代碼 0x8007000d

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.19 – 內部伺服器錯誤
HRESULT: 0x8007000d
HRESULT 的描述
無法存取要求的網頁,因為與該網頁相關的設定資料不正確。

原因

發生此問題是因為 ApplicationHost.config 或 Web.config 檔案包含格式不正確或未識別的 XML 元素。 IIS 無法識別未安裝之模組的 XML 元素。 例如:IIS URL 重新寫入模組。

解決方案

請使用下列其中一種方法:

  • 刪除 ApplicationHost.config 檔案或 Web.config 檔案中格式不正確的 XML 元素。
  • 請檢查未識別的 XML 元素,然後安裝相關的 IIS 模組。

HRESULT 代碼 0x80070021

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.19 – 內部伺服器錯誤
HRESULT: 0x80070021
HRESULT 的描述
無法存取要求的網頁,因為與該網頁相關的設定資料不正確。

原因

當 IIS 設定檔案的指定部分鎖定在較高的設定層級時,可能就會發生這個問題。

解決方案

請解除鎖定指定的區段,或不要在較高層次使用它。 如需有關設定鎖定的詳細資訊,請參閱如何在 IIS 7.0 配置中使用鎖定

HRESULT 代碼 0x80070005

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.19 – 內部伺服器錯誤
HRESULT: 0x80070005
HRESULT 的描述
無法存取要求的網頁,因為與該網頁相關的設定資料不正確。

原因

這個問題是下列其中一個原因所造成:

  • 您在執行 Windows Vista 的電腦上使用 IIS。 此外,可以將網站配置為使用通用命名慣例 (UNC) 通過驗證來存取遠端 UNC 共用。
  • IIS_IUSRS 群組沒有 ApplicationHost.config 檔案、Web.config 檔案或 IIS 虛擬/應用程式目錄的適當權限。

解決方案

請使用下列其中一種方法:

  • 不要為了存取遠端 UNC 共用而將網站配置為使用 UNC 通過驗證。 請改為指定具有存取遠端 UNC 共用之適當權限的使用者帳戶。

  • 將 ApplicationHost.config 檔案或 Web.config 檔案的 [讀取] 權限授予 IIS_IUSRS 群組。 如果要執行這項操作,請依照下列步驟執行:

    1. 在 Windows 檔案總管中,找出包含與網站關聯之 ApplicationHost.config 檔案的資料夾,或找出包含與網站關聯之 Web.config 檔案的虛擬目錄或應用程式目錄。

      注意事項

      IIS 的虛擬目錄或應用程式目錄中可能不包含 Web.config 檔案。 即使如此,也必須依照這些步驟執行。

    2. 以滑鼠右鍵按一下包含 ApplicationHost.config 檔案的資料夾,或者以滑鼠右鍵按一下可能包含 Web.config 檔案的虛擬或應用程式目錄。

    3. 選取 [內容]

    4. 選取 [安全性] 索引標籤,然後選取 [編輯]

    5. 選取 新增

    6. 在 [ 輸入要選取的物件名稱 ] 方塊中,輸入 <computername>\IIS_IUSRS,選取 [ 檢查名稱],然後選取 [ 確定]

      注意事項

      <Computername> 是計算機名稱的佔位元。

    7. 選取 [讀取] 核取方塊,然後選取 [確定]

    8. 在資料夾的 [屬性] 對話方塊中,選取 [確定]

      注意事項

      請確認 ApplicationHost.config 和 Web.config 檔案繼承資料夾的屬性,如此,IIS_IUSRS 才會具有那些檔案的「讀取」權限。

HRESULT 代碼 0x800700b7

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.19 – 內部伺服器錯誤
HRESULT: 0x800700b7
HResult 的描述
無法存取要求的網頁,因為與該網頁相關的設定資料不正確。

原因

如果設定在設定階層 (例如,上層站台/資料夾的 ApplicationHost.config 或 Web.config 檔案) 中較高層級的指定設定區段具有重複的項目,可能就會發生這個問題。 錯誤訊息中會指出重複項目的位置。

解決方案

依照錯誤訊息的建議檢查指定的設定檔案,並將檔案與上層 ApplicationHost.config 或 Web.config 檔案比較,找出是否有重複的項目。 請移除重複的項目,或者使該項目成為唯一的。 例如,之所以發生這個問題,可能是因為 ApplicationHost.config 檔案具有下列程式碼的重複項目。

<add accessType="Allow" users="*" />

若要解決這個問題,請在 ApplicationHost.config 檔案中刪除授權規則的重複項目。 如果要執行這項操作,請依照下列步驟執行:

  1. 選取 [開始],在 [開始搜尋] 方塊中輸入「記事本」,以滑鼠右鍵按一下 [記事本],然後選取 [以系統管理員身分執行]

    注意事項

    若提示您輸入系統管理員密碼或確認,請輸入密碼或按一下 [繼續]

  2. [檔案] 功能表中,選取 [開啟舊檔],在 [檔案名稱] 方塊中輸入 %windir%\System32\inetsrv\config\applicationHost.config,然後選取 [開啟舊檔]

  3. 在 ApplicationHost.config 檔案中,刪除類似下列程式碼的重複項目:

    <add accessType="Allow" users="*" />
    

HRESULT 代碼 0x8007007e

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.19 – 內部伺服器錯誤
HRESULT: 0x8007007e
HResult 的描述
無法存取要求的網頁,因為與該網頁相關的設定資料不正確。

原因

發生這個問題,是因為 ApplicationHost.config 檔案或 Web.config 檔案參考無效或不存在的模組或 DLL。

解決方案

在 ApplicationHost.config 檔案或 Web.config 檔案中,找出無效的模組參考或 DLL 參考,然後修正參考。 若要判斷哪個模組參考不正確,請啟用「失敗要求的追蹤」,然後重現問題。

HRESULT 代碼 0x800700c1

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.19 – 內部伺服器錯誤
HRESULT: 0x800700c1
HRESULT 的描述
無法存取要求的網頁,因為與該網頁相關的設定資料不正確。

原因

如果指定之模組的位元不同於裝載應用程式的應用程式集區位元,可能就會發生這個問題。 例如:嘗試將 32 位元元件載入 64 位元應用程式集區。 此外,如果指定的模組已損毀,可能也會發生這個問題。

解決方案

請確定指定的模組位元與主控應用程式集區的位元相同。 此外,請確定模組尚未損毀。

HRESULT 代碼 0x8007010b

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.19 – 內部伺服器錯誤
HRESULT: 0x8007010b
HRESULT 的描述
無法存取要求的網頁,因為與該網頁相關的設定資料不正確。

原因

如果無法存取指定的內容目錄,可能就會發生這個問題。

解決方案

  • 確認檔路徑存在。
  • 確認檔案路徑是否正確命名。
  • 確認檔案路徑已設定正確的檔案層級許可權。
  • 確認檔路徑指向有效的檔案系統類型。

如果不確定檔路徑為何,請使用「處理序監視」工具或「失敗要求的追蹤」進行識別。

HRESULT 代碼 0x8007052e

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.19 – 內部伺服器錯誤
HRESULT: 0x8007052e
HRESULT 的描述
無法存取要求的網頁,因為與該網頁相關的設定資料不正確。

原因

IIS 中的預設處理序識別沒有足夠的權限,無法開啟遠端共用上的 Web.config 檔案。

解決方案

請確認此 web 應用程式的應用程式集區身分識別帳戶具有足夠的許可權可以開啟 Web.config 檔案。

HRESULT 代碼 0x80070003

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.19 – 內部伺服器錯誤
HRESULT: 0x80070003
HRESULT 的描述
無法讀取設定檔。

原因

這項錯誤是由於缺乏許可權或不符合虛擬目錄路徑的實體路徑所造成。 例如,web app 實體根路徑底下不會有 Web.config

解決方案

  • 請確認 Web.config 路徑存在,且具有正確的許可權設定。
  • 收集處理程序監視記錄檔以取得錯誤的詳細資訊。

更新視窗時修正中斷 IIS 設定檔問題

就一般安全規則而言,在安裝任何更新之前,所有的設定檔 (不限於 IIS) 都應該備份。 如果您使用虛擬機器,請先對虛擬機器拍攝快照,再進行更新。 此建議不限於 Windows 更新。