發新話題
打印

排解「HTTP 500 - 內部伺服器錯誤」錯誤訊息

排解「HTTP 500 - 內部伺服器錯誤」錯誤訊息

Microsoft 強烈建議所有使用者升級為在 Microsoft Windows Server 2003 上執行的 Microsoft Internet Information Services (IIS) 6.0 版。IIS 6.0 能夠大幅提升網頁基礎結構的安全性。如需有關 IIS 安全性主題的詳細資訊,請造訪下列 Microsoft 網站:
http://www.microsoft.com/technet/security/prodtech/IIS.mspx (http://www.microsoft.com/technet/security/prodtech/IIS.mspx)

結論

下列錯誤訊息表示在傳回此錯誤時,裝載該網站的 Web 伺服器發生了問題:
HTTP 500 - 內部伺服器錯誤
本文將告訴您,如何疑難排解這些錯誤。本文主要提供給網站管理員參考。發生這些錯誤的原因有很多種可能,並會影響許多不同的系統設定。本文所說明的程序必須由伺服器上 Administrators 群組的成員所執行。

遭遇這些錯誤的使用者應該通知網站管理員這些問題。

回此頁最上方

當您嘗試載入 Localstart.asp 檔案時


當網站的預設文件之一 (Iisstart.asp) 嘗試載入 Localstart.asp 檔案,而嘗試存取網頁的使用者,沒有執行 Localstart.asp 檔案所包含指令碼的正確權限,便會收到 HTTP 500 錯誤訊息。如果您清除 [顯示易懂的 HTTP 錯誤訊息] 核取方塊,在 HTTP 500 錯誤訊息發生時您會看到類似下列的資訊:
Error Type:
Microsoft VBScript runtime (0x800A0046)
Permission denied:'GetObject'
/localstart.asp, line 19 (錯誤類型:Microsoft VBScript 執行階段 (0x800A0046) 權限被拒絕:'GetObject' /localstart.asp,第 19 行)
因為 Localstart.asp 檔案包含使用 IIS Admin Objects 存取 Metabase 的 Active Directory Service Interfaces (ADSI) 和 Visual Basic Scripting Edition (VBScript) 程式碼。基於安全性考量,只有本機系統管理員群組的成員才能存取 Metabase。這是原本設計的做法。

如果要解決這個問題,請依照下列步驟執行:
1.按一下 [開始],指向 [程式集],指向 [系統管理工具],然後按一下 [Internet Information Services]
2.在主控台樹狀目錄中,按一下 [預設網站]。在顯示窗格中,用滑鼠右鍵按一下 [Localstart.asp],然後按一下 [內容]
3.[檔案安全性] 索引標籤上,按一下 [匿名存取和驗證控制] 下的 [編輯]
4.[驗證方法] 內容頁面中,按一下以取消選取 [匿名存取]

回此頁最上方

當您瀏覽 ASP 網頁時

當您瀏覽動態伺服器網頁 (ASP) 時,收到「HTTP 500.100 - 內部伺服器錯誤 - ASP 錯誤」錯誤訊息。如果您取消選取 [顯示易懂的 HTTP 錯誤訊息] 核取方塊,在 [技術資訊 (針對支援人員)] 區段中您會看到類似下列的資訊:
Error Type:
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined:'x'
/OptionExplicitError.asp, line 9

Page:
GET /OptionExplicitError.asp (錯誤類型:Microsoft VBScript 執行階段 (0x800A01F4) 未定義變數:'x' /OptionExplicitError.asp,第 9 行 網頁:GET /OptionExplicitError.asp)
如果要解決此問題,請移除 Option Explicit 陳述式,或使用 DIM 關鍵字來宣告變數。

如果要重新產生此行為,請在允許執行指令碼的虛擬目錄中,執行包含下列程式碼的 ASP 檔案。
<% Option Explicit %>
<HTML>
<HEAD>
<TITLE>500-100 Undeclared Variable</TITLE>
</HEAD>
<BODY>
<>About to use an undeclared variable</P>
<%
x = 5
%>
</B></P>
</BODY>
</HTML>
如果要修正此範例,請使用 DIM 陳述式來宣告 X 變數,如下所示:
<% Option Explicit %>
<HTML>
<HEAD>
<TITLE>500-100 Undeclared Variable</TITLE>
</HEAD>
<BODY>
<>About to use an undeclared variable</P>
<%
DIM x
x = 5
%>
</B></P>
</BODY>
</HTML>

回此頁最上方

當 IIS 5.0 傳回 Server.GetLastError 錯誤訊息時

當無法使用 Web 應用程式或網頁時,IIS 便會傳回一則錯誤訊息。因此,自訂的 ASP 網頁會處理伺服器端指令碼錯誤的回應。此網頁傳回「500 內部伺服器錯誤」的狀態,此錯誤造成用戶端的遠端指令碼編寫 applet,不會將資料傳回遠端指令碼編寫物件。

如果要解決此問題,請建立傳回「200 OK」狀態的自訂錯誤網頁,然後在遠端指令碼編寫伺服器網頁,或應用程式的「自訂錯誤」區段中參照此網頁。如果要執行這項操作,請依照下列步驟執行:

注意:您可以為個別網頁、整個應用程式、整個網站或網站伺服器設定此自訂錯誤網頁。
1.請建立 %SystemRoot%\Help\IISHelp\Common\500-100.asp 的複本,然後把它儲存到與原始檔案相同的資料夾中。將新的檔案命名為 500-100-OK.asp。
2.按一下 [開始],指向 [程式集],指向 [附屬應用程式],然後按一下 [記事本]
3.在 [記事本] 中,按一下 [檔案] 功能表上的 [開啟舊檔]。在 [查詢] 下拉式方塊中,瀏覽至 500-100-OK.asp 檔案,然後按一下 [開啟]
4.將此程式碼
Response.Status = "500 Internal Server Error"
取代為下列程式碼:
   Response.Status = "200 OK"
注意:如果之前並未修改過錯誤訊息,程式碼的原始行數會是第 12 行。

5.[檔案] 功能表上,按一下 [儲存檔案]
6.在「Internet 服務管理員」的主控台樹狀目錄中,按一下您的網站伺服器。如果您的遠端指令碼編寫 ASP 網頁,存放在其中一個網站的網站應用程式中,請展開您的網站應用程式。
7.在「詳細資訊」窗格中,用滑鼠右鍵按一下您的遠端指令碼編寫伺服器 ASP 網頁,然後按一下 [內容]
8.按一下 [自訂錯誤]。在清單中尋找 500;100 的項目。根據預設,會設定為 URL 並且參考 Help/Common/500-100.asp。按一下 [編輯內容]
9.修改路徑以指向 /IISHelp/Common/500-100-OK.asp,按一下 [確定],然後再按一下 [確定]

回此頁最上方

當您在 Alpha 或 UNIX 上指派檔案類別時

當您在 Alpha 或 UNIX 上指派檔案類別時,收到 HTTP 500 錯誤訊息。

如果要解決此問題,請安裝 Microsoft Office 2000 Service Release 1 (SR-1) 或 Service Release 1a (SR-1a)。如果要下載 Office 2000 SR-1,請參閱下列 Microsoft 網站:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=AF6C8D03-7633-45B4-AB96-795EE656F2A2 (http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=AF6C8D03-7633-45B4-AB96-795EE656F2A2)

回此頁最上方

當您在非預設網站上使用 500-100.asp 檔案處理錯誤時

當您在非預設網站上使用 500-100.asp 檔案處理錯誤時,會收到 HTTP 500 錯誤訊息。

如果要解決這個問題,請依照下列步驟執行:
1.在 Internet Information Services 嵌入式管理單元的主控台樹狀目錄中,用滑鼠右鍵按一下適當的網站,按一下 [新增],然後按一下 [虛擬目錄]
2.在「虛擬目錄建立精靈」中,按一下 [下一步]。在 [別名] 文字方塊中,輸入 IISHelp,然後按一下 [下一步]
3.當提示您輸入內容資料夾的路徑時,按一下 [瀏覽],選取 WINNT\Help\IisHelp 資料夾,然後按一下 [下一步]
4.[存取權限] 頁面中,接受所有的預設值,按一下 [下一步],然後按一下 [完成]
5.用滑鼠右鍵再按一下網站,然後按一下 [內容]
6.[自訂錯誤] 索引標籤中,選取 "500;100" 錯誤資料行,然後按一下 [編輯內容]
7.[訊息類型] 清單方塊中,在 [URL] 文字方塊中輸入 /iisHelp/common/500-100.asp
8.按一下 [確定],然後再按一下 [確定]

回此頁最上方

當您在 Index Server 上執行查詢時

當您在 Index Server 中按一下 [開始] 來執行查詢時,您可能會收到 HTTP 500 錯誤訊息。

因為包含查詢頁面的資料夾尚未定義預設應用程式啟動點,所以會發生此錯誤。

如果要解決這個問題,請依照下列步驟執行:
1.在 Internet Information Services 嵌入式管理單元中,用滑鼠右鍵按一下主控台樹狀目錄中包含查詢網頁的網站根目錄,然後按一下 [內容]
2.[主目錄] 索引標籤上,按一下 [建立]
3.按一下 [確定],然後重新嘗試查詢。

回此頁最上方

當您在 ASP 網頁中存取提供者時

如果您取消選取 [顯示易懂的 HTTP 錯誤訊息] 核取方塊,當您嘗試在 ASP 網頁中存取提供者時,可能會收到下列錯誤訊息:
ADODB.Connection (0x800A0E7A) Provider cannot be found.It may not be properly installed./Nwind.asp, line 10 (找不到 ADODB. 連線 (0x800A0E7A) 提供者。可能並未正確安裝。/Nwind.asp,第 10 行)
因為 Microsoft Data Access Components (MDAC) 需要的動態連結程式庫 (DLL) 並未登錄,所以會發生此錯誤。
1.按一下 [開始],按一下 [執行],然後輸入 cmd
2.在命令提示字元中,輸入 cd %systemroot%:\Program Files\Common Files\System\Ole
3.在命令提示字元中,輸入 regsvr32 sqloledb.dll
4.當您收到已成功登錄 DLL 的確認訊息時,按一下 [確定]注意:此解決方案使用 Microsoft SQL Server OLE Provider DLL (Sqloledb.dll) 做為範例。因為未登錄的 DLL 可能會根據您使用的 OLE DB 提供者而有所不同,您必須根據情況修改步驟 2。

回此頁最上方

當您在 IIS 5.0 上設定 COM+ 應用程式識別時

當您嘗試在 IIS 5.0 上設定 COM+ 應用程式識別時,會收到 HTTP 500 錯誤訊息。

當 COM+ 應用程式或 Microsoft Transaction Server (MTS) 套件的識別是根據 [互動式使用者 - 目前登入的使用者] 設定時,會發生此問題。因為目前並沒有使用者登入 IIS 主控台,所以無法執行應用程式。

如果要解決此問題,將 COM+ 應用程式或 MTS 套件的識別設定為 [本使用者],然後指定一個使用者帳戶。如果要執行這項操作,請依照下列步驟執行:
1.按一下 [開始],指向 [程式集],指向 [系統管理工具],然後按一下 [元件服務]
2.在主控台樹狀目錄中,依序展開 [元件服務][電腦][我的電腦][COM+ 應用程式]。尋找您想要變更識別的應用程式。
3.用滑鼠右鍵按一下適當的 COM+ 應用程式,然後按一下 [內容]
4.[識別] 索引標籤上,按一下 [本使用者],輸入一個電腦的有效帳戶,然後按一下 [確定]

回此頁最上方

當您在 IIS 4.0 上設定 MTS 應用程式識別時

當您在 IIS 4.0 上設定 MTS 應用程式識別時,收到 HTTP 500 錯誤訊息。

如果要解決這個問題,請依照下列步驟執行:
1.在 Internet Information Services 嵌入式管理單元中,依序展開 [電腦][我的電腦][Microsoft Transaction Server]。尋找您想要變更識別的套件。應用程式是列在「已安裝的套件」資料夾中。
2.用滑鼠右鍵按一下套件,然後按一下 [內容]
3.[識別] 索引標籤上,按一下 [本使用者],輸入一個有效的帳戶,然後按一下 [套用]

回此頁最上方

當 IIS 4.0 在其所屬的記憶體空間中執行時

當下列任何一種情況成立時,您就可能收到 HTTP 500 錯誤訊息:
IIS 版本 4.0 的預設網站在其所屬的記憶體空間中,是以隔離的處理程序執行。
Microsoft Internet Explorer 設定為使用 Proxy Server 2.0 上的 Web proxy。
BackOffice Small Business Server 版本 4.5 中的 Internet Explorer 設定為使用 proxy 伺服器,並且啟用 proxy 伺服器封包篩選。
如果要解決這個問題,請依照下列步驟執行:
1.按一下 [開始],指向 [程式集],按一下 [Microsoft Proxy Server],然後按一下 [Microsoft Management Console]
2.在主控台樹狀目錄中,展開 [Internet Information Server] 資料夾,然後展開伺服器物件。
3.用滑鼠右鍵按一下 [預設的網站],然後按一下 [內容]
4.[主目錄] 索引標籤上,尋找 [應用程式設定] 區域,然後按一下以取消選取 [在不同的記憶體空間執行 (隔離的處理程序)
5.按一下 [套用],然後按一下 [確定]
6.用滑鼠右鍵按一下 [預設的網站],然後按一下 [停止]
7.用滑鼠右鍵按一下 [預設的網站],然後按一下 [啟動]


回此頁最上方

参考

如需有關 [顯示易懂的 HTTP 錯誤訊息] 選項的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
218155 (http://support.microsoft.com/kb/218155/) Hypertext Transport Protocol 錯誤訊息的說明
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
245025 (http://support.microsoft.com/kb/245025/) 如何取得並安裝 Office 2000 SR-1/SR-1a 更新

回此頁最上方


這篇文章中的資訊適用於:
Microsoft Internet Information Server 4.0
Microsoft Internet Information Services 5.0

回此頁最上方

關鍵字: 
atdownload kbdownload kbhowtomaster KB311766

TOP

發新話題