HTTP 錯誤的疑難排解

本章節針對 Reporting Services 安裝中最有可能會發生的 HTTP 錯誤提供原因和解決方案資訊。

HTTP 400 錯誤要求

如果 Internet Explorer 傳回「找不到網頁」或 HTTP 400 錯誤,表示報表伺服器資料庫可能尚未設定或無法使用。您可以使用 Reporting Services 組態工具來確認資料庫是否已設定完成。您可以使用 [系統管理工具] 中的 [服務] 主控台應用程式來確認 SQL Server Database Engine 執行個體是否已啟動。

HTTP 401 拒絕存取和 HTTP 500 驗證設定不符的內部伺服器錯誤

如果報表伺服器 Web.config 檔和 RSReportServer.config 檔中具有衝突的驗證設定,就可能會發生 HTTP 401 和 HTTP 500 錯誤。若要達成相容,這些設定應該遵循下列內容:

RSReportServer.config

報表伺服器的 Web.config

RSWindows*

Authentication=”Windows”

Custom

Authentication=”Forms”

當這些設定不符 (例如,如果針對相同的報表伺服器指定了 RSWindows* 和 Forms) 時,就會發生 HTTP 錯誤。傳回的錯誤會因偵測到不符之前是否驗證要求而不同。如果要求先讓驗證失敗,就會傳回 HTTP 401。如果驗證一開始成功,然後再偵測到不符,就會傳回 HTTP 500。

如果您在修改驗證設定之後收到任何一個 HTTP 錯誤,請確認您已正確更新這兩個檔案,而且這些設定都遵循相同的驗證提供者。如需詳細資訊,請參閱<在 Reporting Services 中設定驗證>。

HTTP 503 服務無法使用

在報表處理期間或您首次存取報表伺服器時,都可能會發生 HTTP 503 錯誤:

  • 如果報表伺服器處於高度記憶體不足壓力的情況下,報表伺服器就會拒絕新的要求,直到目前的應用程式網域卸載而且新的應用程式網域具現化為止。當系統拒絕要求時,您就會收到 HTTP 503 錯誤。如果這種情況持續發生,您就應該進行下列其中一項動作:加入更多記憶體、將報表伺服器安裝移至具有更多記憶體的電腦,或變更記憶體組態設定。如需有關變更組態設定的詳細資訊,請參閱<設定報表伺服器應用程式的可用記憶體>。

  • 若為在您首次開啟報表管理員或存取報表伺服器時發生的 HTTP 503 錯誤,您就必須檢閱 HTTP.SYS 記錄檔,以便取得有關導致錯誤發生之原因的資訊。根據預設,HTTP.SYS 記錄沒有啟用。您可以使用下列指示來啟用電腦的記錄。

如何啟用 HTTP.SYS 記錄

  1. 將下列各行程式碼複製到文字檔中。

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
    "EnableErrorLogging"=dword:00000001
    "ErrorLogFileTruncateSize"=dword:001e8480
    "ErrorLoggingDir"="\\systemroot\\System32\\Logfiles"
    
  2. 將此檔案儲存至桌面成為 .reg 檔。

  3. 按兩下此檔案,以便套用登錄設定。

  4. 重新啟動 HTTP 服務:

    1. 開啟 [命令提示字元] 視窗。如果您正使用 Windows Vista,請使用 [以系統管理員身分執行] 權限來開啟此視窗。

    2. 輸入 net stop http。

    3. 停止 HTTP 服務會導致其他相依服務一併停止。若要繼續,請確認該動作。

    4. 輸入 net start http。

  5. Ping 要傳送要求至 HTTP.SYS 並產生 HTTP 503 錯誤的報表伺服器 Web 服務。若要 Ping Web 服務,請開啟瀏覽器視窗,然後在 URL 位址中輸入 http://<your server name>/reportserver。

  6. 在文字編輯器中開啟記錄檔,以便檢視項目。根據預設,記錄檔位於 %windir%\system32\LogFiles。