錯誤:無法在 Web 伺服器上啟動偵錯

當您嘗試偵錯網頁伺服器上所執行的 ASP.NET 應用程式時,可能會收到下列錯誤訊息:Unable to start debugging on the Web server

此錯誤通常是因為發生錯誤或組態變更,需要更新應用程式集區或/和重設 IIS。 您可以開啟提升權限的命令提示字元並鍵入 iisreset 來重設 IIS。

詳細的錯誤訊息是什麽?

Unable to start debugging on the Web server 訊息是個泛型訊息。 通常,錯誤字串中包含更具體的訊息,這可協助您找出問題的原因,或搜尋更精確的修正。 以下是附加至主要錯誤訊息的一些較常見的錯誤訊息:

IIS 未列出符合啟動 URL 的網站

  • 以系統管理員身分重新啟動 Visual Studio,然後重試偵錯。 (某些 ASP.NET 偵錯案例需要較高的權限。)

    以滑鼠右鍵按一下 Visual Studio 捷徑圖示,選擇 [屬性] > [進階],然後選擇一律以系統管理員身分執行,即可將 Visual Studio 設定為一律以系統管理員身分執行。

未正確設定網頁伺服器

無法連線到網頁伺服器

  • 是否在同一部電腦上執行 Visual Studio 和網頁伺服器,並使用 F5 進行偵錯 (而不是 [連結至處理序])? 開啟專案屬性,並確定專案已設定為連線到正確的網頁伺服器和啟動 URL。 (根據專案類型而定,開啟 [屬性 > Web > 伺服器] 或 [屬性 > 偵錯]。若為 Web Forms 專案,請開啟 [屬性頁 > 開始選項 > 伺服器]。)

  • 否則,請重新啟動應用程式集區,然後重設 IIS。 如需詳細資訊,請參閱檢查 IIS 組態

網頁伺服器未及時回應

  • 重設 IIS 並重試偵錯。 多個偵錯工具執行個體可能會連結至 IIS 處理序;重設會終止這些執行個體。 如需詳細資訊,請參閱檢查 IIS 組態

作業已逾時

  • 重設 IIS 並重試偵錯。 多個偵錯工具執行個體可能會連結至 IIS 處理序;重設會終止這些執行個體。 如需詳細資訊,請參閱檢查 IIS 組態

Microsoft Visual Studio 遠端偵錯監視 (msvsmon.exe) 似乎沒有在遠端電腦上執行

  • 如果您要在遠端電腦上進行偵錯,請確定您已安裝並執行遠端偵錯工具。 如果訊息提及防火牆,請確定防火牆中的正確連接埠處於開啟狀態,特別是在使用協力廠商防火牆時。
  • 如果您使用的是 HOSTS 檔案,請確認其已正確設定。 例如,如果使用 F5 進行偵錯 (而不是 [連結至處理序]),HOSTS 檔案必須包含與專案屬性 (根據專案類型而定,開啟 [屬性 > Web > 伺服器] 或 [屬性 > 偵錯]) 相同的專案 URL。

遠端伺服器已傳回錯誤

請檢查 IIS 記錄檔 以取得錯誤子代碼和其他資訊,以及此 IIS 7 部落格文章

此外,以下是一些常見的錯誤碼和一些建議。

  • (403) 禁止。 此錯誤有許多可能的原因,因此請檢查記錄檔和網站的 IIS 安全性設定。 請確定伺服器的 web.config 檔案包含在編譯元素中的 debug=true。 請確定 Web 應用程式資料夾具有正確的權限,而且應用程式集區組態正確無誤 (密碼可能已變更)。 請參閱檢查 IIS 組態。 如果這些設定已正確,而且您要在本機進行偵錯,也請驗證您是否連線到正確的伺服器類型和 URL (根據您的專案類型而定,在 [屬性 > Web > 伺服器] 或 [屬性 > 偵錯] 中執行)。
  • (503) 伺服器無法使用。 應用程式集區可能因為發生錯誤或組態變更而停止。 重新啟動應用程式集區。
  • (404) 找不到。 請確定應用程式集區已針對正確的 ASP.NET 版本進行設定。

無法啟動 ASP.NET 偵錯

  • 重新啟動應用程式集區並重設 IIS。 如需詳細資訊,請參閱檢查 IIS 組態
  • 如果您在執行 URL 重寫,請測試沒有 URL 重寫的基本 web.config。 請參閱檢查 IIS 組態有關 URL 重寫模組的注意事項

偵錯工具無法連線到遠端電腦

如果您要在本機進行偵錯,請在 Visual Studio 中開啟專案屬性,並確定專案已設定為連線到正確的網頁伺服器和 URL。 (根據專案類型而定,開啟 [屬性 > Web > 伺服器] 或 [屬性 > 偵錯]。)

使用 32 位元版本的 Visual Studio 在本機進行偵錯 (即該版本的 Visual Studio 使用 64 位元版本的遠端偵錯工具來偵錯 64 位元的應用程式) 時,可能會發生此錯誤。 Visual Studio 2019 和更早版本是 32 位元的應用程式。 請檢查 IIS 上的應用程式集區以確定 [啟用 32 位元應用程式] 設定為 true,重新啟動 IIS,然後再試一次。

此外,如果您使用的是 HOSTS 檔案,請確認其已正確設定。 例如,HOSTS 檔案必須包含與專案屬性 (根據專案類型而定,開啟 [屬性 > Web > 伺服器] 或 [屬性 > 偵錯]) 相同的專案 URL。

請參閱常見組態錯誤的說明。 在偵錯工具外部執行網頁即可提供詳細資訊。

  • 是否在同一部電腦上執行 Visual Studio 和網頁伺服器? 開啟專案屬性,並確定專案已設定為連線到正確的網頁伺服器和啟動 URL。 (根據專案類型而定,開啟 [屬性 > Web > 伺服器] 或 [屬性 > 偵錯]。)

  • 如果仍無法解決問題,或您要從遠端進行偵錯,請遵循檢查 IIS 組態中的步驟。

作業不受支援。 未知的錯誤:錯誤號碼

如果您在執行 URL 重寫,請測試沒有 URL 重寫的基本 web.config。 請參閱檢查 IIS 組態有關 URL 重寫模組的注意事項

檢查 IIS 組態

採取此處詳述的步驟來解決問題之後,並於再次嘗試偵錯之前,您可能也需要重設 IIS。 您可以開啟提升權限的命令提示字元並鍵入 iisreset 來執行此動作。

  • 停止並重新啟動 IIS 應用程式集區,然後重試。

    應用程式集區可能會由於發生錯誤而停止。 或者,所做的其他組態變更可能需要您停止並重新啟動應用程式集區。

    注意

    如果應用程式集區持續停止,您可能需要從 [控制台] 解除安裝 URL 重寫模組,然後重新安裝該模組。 此問題可能會在重大的系統升級之後發生。

  • 檢查應用程式集區組態,視需要加以更正,然後重試。

    應用程式集區可能針對不符合 Visual Studio 專案的 ASP.NET 版本進行設定。 請更新應用程式集區中的 ASP.NET 版本,然後加以重新啟動。 如需詳細資訊,請參閱 IIS 8.0 使用 ASP.NET 3.5 和 ASP.NET 4.5

    此外,如果密碼認證已變更,您可能需要在應用程式集區或網站中更新這些些認證。 在應用程式集區中,請在 [進階設定 > 處理序模型 > 身分識別] 中更新這些認證。 對於網站,則在 [基本設定 > 連線身分...] 中更新這些認證。重新啟動應用程式集區。

  • 檢查 Web 應用程式資料夾是否具有正確的權限。

    請確定您為 IIS_IUSRS、IUSR 或與應用程式集區相關聯的特定使用者授與 Web 應用程式資料夾的讀取和執行權限。 修正問題並重新啟動應用程式集區。

  • 請確定 IIS 上已安裝正確的 ASP.NET 版本。

    IIS 和 Visual Studio 專案中的 ASP.NET 版本不相符可能會導致此問題。 您可能需要在 web.config 中設定架構版本。若要在 IIS 上安裝 ASP.NET Core,請參閱在 Windows Server 上安裝 ASP.NET Core;對於 ASP.NET,請參閱在 Windows Server 上安裝 ASP.NET。 此外,請參閱 IIS 8.0 使用 ASP.NET 3.5 和 ASP.NET 4.5;對於 ASP.NET Core,請參閱使用 IIS 裝載在 Windows 上

  • 若您只使用 IP 位址,請解決驗證錯誤

    根據預設,IP 位址被假設為網際網路的一部分,且不會透過網際網路完成 NTLM 驗證。 如果網站在 IIS 中設定為需要驗證,則此驗證會失敗。 若要修正這個問題,您可以指定遠端電腦的名稱,而不是 IP 位址。

其他原因

如果 IIS 組態不是導致問題的原因,請嘗試下列步驟:

  • 以系統管理員權限重新啟動 Visual Studio,然後再試一次。

    某些 ASP.NET 偵錯案例需要較高的 Visual Studio 權限。

  • 如果有多個 Visual Studio 執行個體正在執行,請在 Visual Studio 的一個執行個體中重新開啟專案 (以系統管理員權限),然後再試一次。

  • 如果您使用具有本機位址的 HOSTS 檔案,請嘗試使用回送位址,而不是電腦的 IP 位址。

    如果您未使用本機位址,請確定 HOSTS 檔案必須包含與專案屬性 (根據專案類型而定,開啟 [屬性 > Web > 伺服器] 或 [屬性 > 偵錯]) 相同的專案 URL。

更多疑難排解步驟

  • 在伺服器的瀏覽器中顯示 localhost 頁面。

    若 IIS 未正確安裝,則您在瀏覽器中輸入 http://localhost 時應該會發生錯誤。

    如需部署至 IIS 的詳細資訊,請參閱 IIS 8.0 使用 ASP.NET 3.5 和 ASP.NET 4.5;對於 ASP.NET Core,請參閱使用 IIS 裝載在 Windows 上

  • 在伺服器上建立基本的 ASP.NET 應用程式 (或使用基本 web.config 檔案)。

    如果您無法讓應用程式使用偵錯工具,請嘗試在本機伺服器上建立基本 ASP.NET 應用程式,並嘗試對基本應用程式進行偵錯。 (您可能想要使用預設 ASP.NET MVC 範本。)如果您可以對基本應用程式進行偵錯,這可協助您識別這兩個組態之間的差異。 請查看 web.config 檔案中的設定差異,例如 URL 重寫規則。

另請參閱