共用方式為


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

當您嘗試偵錯在 Web 伺服器上執行的應用程式時,有時可能會出現下列錯誤訊息:

Unable to start debugging on the Web server

如果您的訊息比較長,則會包含在這個訊息的子主題。

如果您遇到這個錯誤,請考量下列幾個事項。 首先移至檢查事項,然後根據您的硬體和軟體組態考慮其餘項目。

  • 檢查事項

  • 遠端伺服器上的 Web 應用程式

  • 儲存在 Visual SourceSafe 中的 Web 應用程式以及使用 FrontPage Server Extensions

  • 手動附加

  • 因為語法無效導致伺服器無法處理偵錯要求

檢查事項

嘗試檢查下列事項:

  • 檢視設定 ASP.NET 或 ATL Server 的程序。 如需詳細資訊,請參閱準備偵錯 ASP.NET

  • 您是否擁有必要的偵錯存取權限? 如需詳細資訊,請參閱 ASP.NET 偵錯:系統需求中的<安全性要求>章節。

  • 您是否正在執行可讓 Visual Studio 偵錯工具自動附加至 Web 應用程式的 Windows 版本呢? 如果不是,您必須在沒有偵錯的情況下啟動應用程式,然後再手動附加至該應用程式 (如需詳細資訊,請參閱手動附加和 ASP.NET 偵錯:系統需求)。

  • 您的 Web 應用程式是否有 Web.config 檔呢?

    • Web.config 檔是否因由將 debug 屬性設為 true 而啟用了偵錯模式呢? 如需詳細資訊,請參閱 HOW TO:啟用 ASP.NET 應用程式的偵錯

    • Web.config 檔是否含有任何語法錯誤呢? 您可在沒有偵錯的情況下執行 Web 應用程式來檢查語法錯誤 (從 [偵錯] 功能表中,選擇 [啟動但不偵錯])。如果 Web.config 中有語法錯誤,將會顯示詳細資訊。

  • 您是否藉由指定特定的 IP 位址 (例如,100.20.300.400) 來建立專案呢? 偵錯 Web 伺服器需要 NTLM 驗證 (Authentication)。 根據預設,IP 位址被假設為網際網路的一部分,且不會透過網際網路完成 NTLM 驗證。 若要更正這個問題:

    • 在建立專案時,請指定您內部網路上的電腦名稱。

      -或-

    • 將 IP 位址 (http://100.20.300.400) 加入至您電腦上信任的站台清單 (從 Internet Explorer 的 [工具] 功能表中,選擇 [網際網路選項],然後選取 [安全性] 索引標籤)。

    伺服器電腦上是否註冊必要的擴充功能? 如果沒有,請依照下列程序重新註冊 ASP.NET。

  • 本機電腦上安裝的 IIS (執行 Visual Studio 的電腦) 是否是在安裝 Visual Studio 之後才安裝? 應該在安裝 Visual Studio 之前先安裝 IIS。 如果是在之後安裝,您可能需要重新註冊 ASP.NET。

    若要重新註冊 ASP.NET

    1. 從命令提示視窗,執行下列命令:systemroot\Microsoft.NET\Framework\ versionNumber \aspnet_regiis -i

      注意:您可以利用 Windows Server 2003 中的 [新增或移除程式] 控制台來安裝 ASP.NET。

    2. 插入 Visual Studio 光碟片,執行安裝程式並選取 [修復/重新安裝]。 這個步驟將會建立 wwwroot$ 共用,以及加入適當權限。

  • 整合式驗證開啟時,網站名稱是否對應至本機回送位址? 如需解決方案,請參閱這份知識庫文件 (機器譯文)。

  • 是否適當指定了專案起始頁的 URL? 副檔名和專案目錄是否正確?

  • 驗證 Web 應用程式的 IIS 設定。 如需詳細資訊,請參閱 HOW TO:檢查 IIS 屬性設定

  • 如果 Web 伺服器上已安裝兩個版本的 .NET Framework,請驗證 IIS 設定中是否已設定正確的版本。 如需詳細資訊,請參閱 HOW TO:檢查 IIS 屬性設定

遠端伺服器上的 Web 應用程式

如果 Web 應用程式位於遠端伺服器上,請先確定您已經完成檢查事項中的項目, 再進行下列檢查:

  • 執行 IIS 伺服器的電腦是否已經安裝 Visual Studio 遠端元件? 如需詳細資訊,請參閱準備偵錯 ASP.NET

  • 您是否擁有必要的偵錯存取權限? 如需詳細資訊,請參閱 ASP.NET 偵錯:系統需求中的<安全性要求>章節。

  • 您是否正在使用終端伺服器來試著在遠端電腦上偵錯 Web 應用程式? 在 Windows XP 下,支援使用終端伺服器進行原生 Web 應用程式的遠端偵錯。 在 Windows 2000 或 Windows NT 下不支援該作法。

儲存在 Visual SourceSafe 中的 Web 應用程式以及使用 FrontPage Server Extensions

如果 Web 應用程式儲存在 Visual SourceSafe 中,並使用 FrontPage Server Extensions 做為其 Web 存取模式,請檢查下列各項:

  • Visual SourceSafe 是否與 FrontPage Server/Web 伺服器位於相同的電腦上? 如果是,您可使用整合式驗證來進行偵錯。 若要檢查 [整合式驗證] 設定,請參閱位於下列主題:HOW TO:檢查 IIS 屬性設定的<檢查預設 Web 應用程式的 IIS 安全性設定>程序。

因為語法無效導致伺服器無法處理偵錯要求

有時候,伺服器會因為語法無效導致無法處理偵錯要求。 可能是因為 machine.config 檔中的錯誤,而導致不正確的要求語法。 如果 machine.config file 將 maxRequestLength 設定為非常大的值 (例如,40,960,000),則會發生這個錯誤。

手動附加

如果您遵循疑難排解步驟,但是在開始偵錯時仍然出現錯誤訊息,您可能須藉由手動附加來嘗試偵錯您的應用程式。

若要手動附加

  1. 啟動應用程式但不進行偵錯 (從 [偵錯] 功能表中,選擇 [啟動但不偵錯])。

  2. 決定適當的 IIS 處理序或背景工作處理序的名稱。 根據預設會將 ATL Server 應用程式命名為 inetinfo.exe。 若要決定 ASP.NET 背景工作處理序的名稱,請參閱 HOW TO:尋找 ASP.NET 處理序的名稱

    請使用下列程序之一來判斷 ASP.NET 或 ATL Server 應用程式是在哪個處理序下執行的。

  3. 附加至先前步驟決定的處理序。 如需詳細資訊,請參閱 HOW TO:附加至執行中處理序

若要檢查 ASP.NET 應用程式在哪一個處理序之下執行

  1. 使用 Visual Studio 或另一個文字編輯器來開啟應用程式的 machine.config 檔。

  2. 在 system.web 節點內,尋找 ProcessModel 節點,並且檢視其 enable 屬性:

    如果 enable 設為 TRUE,表示應用程式是在 aspnet_wp.exe 或 w3wp.exe 下執行 (這也就是預設值)。

    如果 enable 設為 FALSE,表示應用程式在 inetinfo.exe 下執行。

若要檢查 ATL Server 應用程式在哪一個處理序之下執行

  1. 在 [方案總管] 中,以滑鼠右鍵按一下專案名稱,然後在捷徑功能表上按一下 [屬性]。

  2. 在 [<專案> 屬性頁] 對話方塊中,開啟 [Web 部署] 資料夾,然後選擇 [一般]。

  3. 查看 [應用程式保護] 設定。

    如果設定為 [低 (IIS 處理)],表示應用程式在 inetinfo.exe 下執行。

    如果設定為 [中 (已緩衝)],表示應用程式在 dllhost.exe 處理序下執行 (與其他已緩衝的 ATL Server 應用程式相同)。

    如果設定為 [高 (隔離)],表示應用程式在 dllhost.exe 處理序下執行 (與其他 ATL Server 應用程式分開)。

  4. 按一下 [確定] 以關閉 [<專案> 屬性頁] 對話方塊。

請參閱

工作

錯誤:Web 伺服器找不到要求的資源

參考

偵錯 Web 應用程式:錯誤和疑難排解

其他資源

準備偵錯 ASP.NET