錯誤:無法在 Web 伺服器上啟動調試
當試圖對運作在 Web 伺服器上的應用程式進行調試時,有時可能會得到此錯誤資訊:
如果您的消息更長一些,則會用這個消息的子主題覆寫您的消息。
如果遇到此錯誤,則需要考慮幾個問題。首先轉到“要檢查的内容”,然後根據硬體和軟體配置考慮其餘幾項内容。
要檢查的内容
請嘗試檢查下列内容:
檢查 ASP.NET 或 ATL Server 的設定過程。有關更多資訊,請參見為調試 ASP.NET 應用程式做好準備。
您是否具有進行調試所必需的通路特權?有關更多資訊,請參見 ASP.NET 調試:系統要求中的“安全要求”一節。
您是否正在運作一個允許 Visual Studio 調試器自動附加到 Web 應用程式的 Windows 版本?如果不是,則需要啟動應用程式而不調試,然後手動附加到它。(有關更多資訊,請參見“手動附加”和 ASP.NET 調試:系統要求。)
您的 Web 應用程式是否具有 Web.config 檔案?
Web.config 檔案是否通過将 debug 屬性設定為 true 而啟用了調試模式?有關更多資訊,請參見如何:為 ASP.NET 應用程式啟用調試。
Web.config 檔案是否包含任何文法錯誤?您可以通過運作 Web 應用程式而不調試來檢查是否存在文法錯誤。(從“調試”菜單中,選擇“開始執行(不調試)”。)如果在 Web.config 中存在文法錯誤,則會顯示詳細資訊。
您是否是通過指定特定的 IP 位址(如 100.20.300.400)而建立了項目?調試 Web 伺服器要求 NTLM 身份驗證。預設情況下,IP 位址被假定為 Internet 的一部分,而在 Internet 上不進行 NTLM 身份驗證。若要更正這一問題:
建立項目時,指定 Intranet 上計算機的名稱。
- 或 -
将 IP 位址 (http://100.20.300.400) 添加到您的計算機上的受信任站點清單中。(從 Internet Explorer 的“工具”菜單中,選擇“Internet 選項”,然後選擇“安全”頁籤)。
是否在伺服器計算機上注冊了必要的擴充?如果尚未注冊,請按下面過程中介紹的方法重新注冊 ASP.NET。
是否在安裝 Visual Studio 後,将 IIS 安裝到運作 Visual Studio 的本地計算機上?IIS 應在安裝 Visual Studio 之前安裝。如果在之後安裝,則可能需要重新注冊 ASP.NET。
重新注冊 ASP.NET
從指令提示視窗中,運作下列指令:systemroot\Microsoft.NET\Framework\versionNumber \aspnet_regiis -i
注意 對于 WindowsServer 2003,可以使用“添加/删除程式”控制台安裝 ASP.NET。
插入 Visual Studio CD光牒,運作安裝程式,然後選擇“修複/重新安裝”。此步驟将建立 wwwroot$ 共享目錄并添加适當的權限。
是否正确地指定了項目起始頁的 URL?擴充名和項目目錄是否正确?
驗證 Web 應用程式的 IIS 設定。有關更多資訊,請參見。
如果您在 Web 伺服器上安裝了兩個版本的 .NET Framework,則請驗證是否在 IIS 設定中設定了正确的版本。有關更多資訊,請參見。
。
如果 Web 應用程式在遠端伺服器上,請首先確定仔細檢查了“要檢查的内容”中的各項内容。接下來請檢查以下内容:
運作 IIS 伺服器的計算機是否已安裝 Visual Studio 遠端元件?有關更多資訊,請參見。
您是否具有進行調試所必需的通路特權?有關更多資訊,請參見 中的“安全要求”一節。
您是否正在使用“終端伺服器”嘗試調試遠端計算機上的 Web 應用程式?在 Windows XP 下,支援使用“終端伺服器”對本機 Web 應用程式進行遠端調試。而在 Windows 2000 或 Windows NT 下則不支援。
如果 Web 應用程式存儲在 Visual SourceSafe 中并且使用 FrontPage 伺服器擴充作為它的 Web 通路模式,則請檢查以下内容:
Visual SourceSafe 是否與 FrontPage 伺服器/Web 伺服器位于同一台計算機上?如果是,則可以使用“內建身份驗證”進行調試。若要檢查“內建身份驗證”設定,請參見過程“檢查 Web 應用程式的 IIS 安全設定”,它位于主題中。
有時,伺服器會因文法錯誤而無法處理調試請求。machine.config 檔案中的錯誤可能導緻請求文法出錯。如果 machine.config 檔案将 maxRequestLength 設為一個異常巨大的值(例如 40,960,000),則會發生此錯誤。
如果按照這些疑難解答步驟執行了相應操作,而在開始調試時仍然收到錯誤資訊,則可能需要嘗試通過手動附加來調試應用程式。
手動附加
啟動應用程式而不調試。(從“調試”菜單中,選擇“開始執行(不調試)”。)
确定适當的 IIS 程序或輔助程序的名稱。預設情況下,ATL Server 應用程式名為 inetinfo.exe。若要确定 ASP.NET 輔助程序的名稱,請參見。
使用下面的過程之一來确定 ASP.NET 或 ATL Server 應用程式在哪個程序下運作。
附加到前一步驟确定的程序。有關更多資訊,請參見。
檢查 ASP.NET 應用程式在哪個程序下運作
使用 Visual Studio 或其他文本編輯器打開應用程式的 machine.config 檔案。
在 system.web 節點内,查找 ProcessModel 節點,然後檢查它的 enable 屬性:
如果 enable 設定為 TRUE,則應用程式在 aspnet_wp.exe 或 w3wp.exe 下運作。(這也是預設設定。)
如果 enable 設定為 FALSE,則應用程式在 inetinfo.exe 下運作。
檢查 ATL Server 應用程式在哪個程序下運作
在解決方案資料總管中,右擊項目名稱,然後從快捷菜單中選擇“屬性”。
在“<項目> 屬性頁”對話框中,打開“Web 部署”檔案夾,然後選擇“正常”。
檢視“應用程式保護”設定。
如果此設定為“低(IIS 程序)”,則應用程式在 inetinfo.exe 下運作。
如果此設定為“中等(池)”,則應用程式在 dllhost.exe 程序下運作(與其他放入池中的 ATL Server 應用程式相同)。
如果此設定為“高(獨立)”,則應用程式在 dllhost.exe 程序下運作(與其他 ATL Server 應用程式不同)。
單擊“确定”關閉“<項目> 屬性頁”對話框。
參考連結:
http://msdn2.microsoft.com/zh-cn/library/dwesw3ee.aspx
轉載于:https://www.cnblogs.com/wskaihd/archive/2006/09/29/518275.html