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

本文可協助您解決當您造訪 IIS 上裝載的網站時所發生的 HTTP 500.0 錯誤。

原始產品版本: Internet Information Services
原始 KB 編號: 942031

摘要

本文說明當您在 Internet Information Services (IIS) Web 應用程式中遇到 500.0 錯誤時出現的 HResult 代碼。 本文適用于網站管理員。 這些錯誤有許多原因,而且可能會影響許多不同的系統設定。 本文所述的程式必須由伺服器上的系統管理員群組成員執行。

遇到這些錯誤的終端使用者應該將問題通知給網站管理員。

HResult 代碼

HTTP 錯誤 500 訊息表示在傳回錯誤時,裝載網站的網頁伺服器發生問題。

以下是這些錯誤的詳細資料。

HResult 代碼 0x80070032

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.0 – 內部伺服器錯誤
HRESULT: 0x80070032
HRESULT ISAPI 篩選器 drive:\FilePath\ISAPI_FLT.dll 嘗試註冊 SF_NOTIFY_READ_RAW_DATA 通知的描述。

原因

發生此問題的原因是 IIS 7.0 不支援註冊 SF_NOTIFY_READ_RAW_DATA 通知的網際網路伺服器 API (ISAPI) 篩選器。

解決方案

請勿使用在 IIS 中註冊 SF_NOTIFY_READ_RAW_DATA 通知的 ISAPI 篩選準則。

HResult 代碼 0x80070035

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.0 – 內部伺服器錯誤
HRESULT: 0x80070035
因發生內部伺服器錯誤而無法顯示頁面 HRESULT 的描述。

原因

發生此問題的原因是執行 IIS 7.0 的伺服器無法存取所要求位置的已設定根目錄。

解決方案

請確定執行 IIS 7.0 的伺服器可以存取所要求位置的已設定根目錄。

HResult 代碼 0x8007000d

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.0 – 內部伺服器錯誤
HRESULT: 0x8007000d
HRESULT 處理常式 「ASPClassic」 的描述在其模組清單中有不正確的模組 「IsapiModule」。

原因

發生此問題的原因是網站的模組清單中遺漏了 ISAPIModule 模組。 ISAPIModule 模組位於下列位置: drive:\Windows\System32\inetsrv\isapi.dll

解決方案

將 ISAPIModule 模組新增至網站的模組清單。 如果要執行這項操作,請依照下列步驟執行:

  1. 按一下 [開始],再按一下 [執行],輸入 Inetmgr.exe,然後按一下 [確定]
  2. 在 [IIS 管理員] 中,展開 <[伺服器名稱]>,展開 [ 網站],然後按下您要修改的網站。
  3. 在 [功能] 檢視中,按兩下 [模組]
  4. 在 [動作] 窗格中,按一下 [新增原生模組]
  5. 在 [新增原生模組] 對話方塊中,按一下以選取 IsapiModule 核取方塊,然後按一下 [確定]

HResult 代碼 0x800700c1

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.0 – 內部伺服器錯誤
HRESULT: 0x800700c1
因發生內部伺服器錯誤而無法顯示頁面 HRESULT 的描述。

原因

發生此問題的原因是指令碼對應無效。

解決方案

請確定指令碼對應指向可處理要求的 ISAPI.dll 檔案。 如果要執行這項操作,請依照下列步驟執行:

  1. 按一下 [開始],再按一下 [執行],輸入 Inetmgr.exe,然後按一下 [確定]
  2. 在 [IIS 管理員] 中,展開 <[伺服器名稱]>,展開 [ 網站],然後按下您要修改的網站。
  3. 在 [功能] 檢視中,按兩下 [處理常式對應]
  4. 請確定指令碼對應指向正確的 ISAPI.dll 檔案。 例如, .asp 檔案應該對應至 %windir%\system32\inetsrv\asp.dll 檔案。

HResult 代碼 0x80070005

錯誤訊息:

應用程式 "application name" 中有伺服器錯誤
HTTP 錯誤 500.0 – 內部伺服器錯誤
HRESULT: 0x80070005
ISAPI 篩選器 「path_of_isapi」 上的 HRESULT LoadLibraryEx 失敗描述。

原因

之所以發生此問題,是因為在全域層級或網站層級載入不正確 ISAPI 篩選條件。

解決方案

移除無效的 ISAPI 篩選條件。 如果要執行這項操作,請依照下列步驟執行:

  1. 按一下 [開始],再按一下 [執行],輸入 Inetmgr.exe,然後按一下 [確定]
  2. 在 [IIS 管理員] 中,展開 <[伺服器名稱]>,展開 [ 網站],然後按下您要修改的網站。
  3. 在 [功能] 檢視中,按兩下 [ISAPI 篩選條件]
  4. 在要移除的 ISAPI 篩選條件 上按右鍵,然後按一下 [移除]

HResult 代碼 0x8007007f

HResult 0x8007007f 有兩種可能性:

  • 錯誤訊息 1:

    應用程式 "application name" 中有伺服器錯誤
    HTTP 錯誤 500.0 – 內部伺服器錯誤
    HRESULT: 0x8007007f
    ISAPI 篩選器 「path_of_isapi」 上 HRESULT 呼叫 GetProcAddress 失敗的描述。

    原因

    之所以發生此問題,是因為在全域層級或網站層級載入不正確 ISAPI 篩選條件。

    解決方案

    若要解決此問題,請移除無效的 ISAPI 篩選條件。 如果要執行這項操作,請依照下列步驟執行:

    1. 按一下 [開始],再按一下 [執行],輸入 Inetmgr.exe,然後按一下 [確定]
    2. 在 [IIS 管理員] 中,展開 <[伺服器名稱]>,展開 [ 網站],然後按下您要修改的網站。
    3. 在 [功能] 檢視中,按兩下 [ISAPI 篩選條件]
    4. 在要移除的 ISAPI 篩選條件 上按右鍵,然後按一下 [移除]
  • 錯誤訊息 2:

    應用程式 "application name" 中有伺服器錯誤
    HTTP 錯誤 500.0 – 內部伺服器錯誤
    HRESULT: 0x8007007f
    您要尋找的資源有問題,因此無法顯示的 HRESULT 描述。

    原因

    之所以發生此問題,是因為所要求資源的處理常式對應指向無法處理要求的 .dll 檔案。

    解決方案

    若要解決此問題,請編輯所要求資源的處理常式對應,以指向可處理要求 的.dll 檔案。 如果要執行這項操作,請依照下列步驟執行:

    1. 按一下 [開始],再按一下 [執行],輸入 Inetmgr.exe,然後按一下 [確定]
    2. 在 [IIS 管理員] 中,展開 <[伺服器名稱]>,展開 [ 網站],然後按下您要修改的網站。
    3. 在 [功能] 檢視中,按兩下 [處理常式對應]
    4. 在要編輯的指令碼對應上按右鍵,然後按一下 [編輯]
    5. 在 [編輯指令碼對應] 對話方塊的 [可執行] 方塊中輸入適當的可執行檔案,然後按一下 [確定]
      例如, .asp 檔案應該對應至 %windir%\system32\inetsrv\asp.dll 檔案。

其他相關資訊

對於從 Web 應用程式程式代碼擲回的任何例外狀況,請檢查 [應用程式事件記錄檔] 或您自己的 [應用程式記錄檔],以取得 [例外狀況類型]、[例外狀況訊息] 和 [例外狀況呼叫堆棧]。 如果需要進一步偵錯,請使用 DebugDiag 最新版本來擷取 第一個可能的例外狀況傾印