文章編號: 910448 - 上次校閱: 2006年9月28日 - 版次: 1.3

如何實作在 Visual Studio 2005 中的遠端偵錯

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
ASP.NET 支援語音資料行

如何實作在 Visual Studio 2005 中的遠端偵錯

若要自訂您的需要此資料行的 我們想要邀請您送出您的想法,有關您感興趣的主題,而且在將來知識庫文件和支援語音資料行,處理您想要查看的問題。您可以送出您的想法和使用 Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) 表單的意見反應。另外還有連結至表單底部的 這個資料行。

在此頁中

全部展開 | 全部摺疊

簡介

歡迎使用 Microsoft ASP.NET 支援語音資料行!我的名稱是 Akshay N。 S。,我是與 ASP.NET 程式開發人員支援小組。我已具有幾乎兩年的 ASP.NET 支援工作。ASP.NET 支援語音] 欄中的這個月我會說明如何實作遠端偵錯 ASP.NET Web 應用程式藉由使用 Microsoft Visual Studio 2005。我要感謝我技術指導人員,Jerry Orman 他擁有驚人的說明 !

遠端偵錯會被視為一個最主題在 ASP.NET 中,但是它真的很酷的功能,當我們不能有本機的 Web 伺服器,或是當我們有儲存於集中式位置應用程式是真的很有幫助。本專欄涵蓋如何設定及使用 Visual Studio 2005 中的遠端偵錯。

遠端偵錯安裝簡化在 Visual Studio 2005 中執行。雖然以確保遠端處理程序在執行,偵錯動詞命令仍然傳送到 Web 網站,除了 T-SQL 偵錯的所有遠端偵錯案例使用 [遠端偵錯監視 (Msvsmon.exe)。

如需有關的 Visual Studio 2005 新偵錯工具,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站:
http://msdn2.microsoft.com/en-us/library/01xdt7cs.aspx (http://msdn2.microsoft.com/en-us/library/01xdt7cs.aspx)
在 Visual Studio.NET 2003年和 Visual Studio.NET 2002年,偵錯 relied 上兩個 DCOM 封裝,電腦偵錯管理員 」 (Mdm.exe) 和 Vs7jit.exe。常見的問題的人員將會看到已造成版本不符,DCOM 權限,或網路問題,排解問題是非常困難。這些套件已經被排除。Msvsmon.exe 現在有代替先前的命令列介面的圖形化使用者介面。與 Msvsmon.exe 使用,遠端偵錯會更簡化。 您只需要執行 Msvsmon.exe,工具會從用戶端連線的接聽。

Msvsmon.exe 有方便使用的介面,而且更容易使用。在 Visual Studio 2005 中的遠端偵錯安裝程式是相當簡單。您必須於偵錯在遠端伺服器上執行 Msvsmon.exe。可以從 Visual Studio 2005 CD 安裝遠端偵錯監視,或只是從共用執行 Msvsmon.exe,而不安裝任何項目根本 Web 伺服器上。

若要深入瞭解 ASP.NET 偵錯,請造訪下列 MSDN 網站:
http://msdn2.microsoft.com/en-us/library/ms227556.aspx (http://msdn2.microsoft.com/en-us/library/ms227556.aspx)

為什麼遠端偵錯嗎?

您可以考慮使用遠端偵錯當您有下列情況:
  • 您無法在本機執行 Web 應用程式。
  • 不能有本機 Web 伺服器和您需要開發網際網路使用者的應用程式或您想要在 Web 伺服器上部署應用程式。
  • 應用程式不適用您在本機上。
  • 您想要儲存於集中式位置應用程式。

遠端偵錯監視器 (Msvsmon.exe)

遠端偵錯監視 (Msvsmon.exe) 是 Visual Studio 2005 遠端偵錯連接到一個小型應用程式。遠端偵錯期間 Visual Studio 2005 執行在一部電腦 (偵錯工具主機) 上,並連同您正在偵錯應用程式在遠端電腦上執行遠端偵錯監視。

遠端偵錯監視會以 Microsoft Windows 應用程式執行。使用者介面會顯示遠端偵錯監視正在執行,並且會讓遠端偵錯簡單設定。

設定 Msvsmon.exe 遠端偵錯

您可以設定遠端偵錯監視遠端偵錯,其中兩個模式:
  • Windows 驗證模式
    這個模式使用作業系統的內建的安全性,以提供高層級的安全性。Kerberos 和 NTLM 通訊協定用來驗證所有的要求。遠端程序呼叫 (RPC) 封包保密性用來加密在網路上旅行,當您偵錯原生程式碼或.NET Framework 為基礎程式碼正在執行 Microsoft Windows Server 2003、 Microsoft Windows XP、 Microsoft Windows 2000 及未來的 Microsoft Windows 作業系統的電腦上的資料。

    若要設定遠端偵錯在 Windows 驗證模式中,請造訪下列 MSDN 網站:
    http://msdn2.microsoft.com/en-us/library/ms164722.aspx (http://msdn2.microsoft.com/en-us/library/ms164722.aspx)
  • 非驗證模式
    這個模式有沒有安全性。Visual Studio 2005 就會將目前使用者的使用者名稱傳送至遠端偵錯工具,但這項資訊用於參考之用,並且因此未驗證。非驗證模式可以啟用在慢速網路上更快的偵錯,但是它並不安全,只限用於安全的網路。可能有惡意傳輸的網路上應該永遠不會使用這個模式。此外,這種模式應該永遠不會用來從遠端偵錯在網際網路上。 非驗證模式只支援原生偵錯。

    若要設定遠端偵錯在非驗證模式中 (針對僅原生程式碼),請造訪下列 MSDN 網站:
    http://msdn2.microsoft.com/en-us/library/ms164723.aspx (http://msdn2.microsoft.com/en-us/library/ms164723.aspx)
遠端偵錯工具已經設計,以便多個使用者可以在同一部電腦上執行遠端偵錯工具。每個遠端偵錯工具執行個體都有唯一的伺服器名稱。伺服器名稱是可以設定,因此您可以為遠端偵錯工具執行個體指定任何伺服器名稱。通常,預設伺服器名稱是令人滿意。預設伺服器名稱,會根據啟動遠端偵錯工具的哪一個使用者而有所不同。如果 user_name 使用者從 domain_name 網域登入 server_name 電腦時,預設伺服器名稱會是 domain_name \ user_name @ server_name

附加處理序] 對話方塊中輸入伺服器名稱,或伺服器名稱輸入專案的偵錯屬性需要連接的遠端偵錯工具執行個體。若要開啟 附加處理序] 對話方塊,請按一下 [附加處理序,在 偵錯] 功能表上,或在 [工具] 功能表上。

偵錯其他使用者的電腦

假設我們想要執行遠端偵錯到不同使用者的電腦與不同使用者登入電腦。我們必須考慮兩個主要問題:
  • 權限
    預設情況下,只有系統管理員和使用者執行遠端偵錯工具可以連接至遠端偵錯工具的存取。
  • 連線
    Visual Studio 2005 需要知道您想要連線至遠端偵錯工具的哪個執行個體。如果同一個使用者正在執行遠端偵錯工具與 Visual Studio 2005,Visual Studio 2005 可尋找遠端偵錯工具不需要您告訴它哪些使用者正在執行遠端偵錯工具。

    不過,如果不同的使用者正在執行遠端偵錯工具,Visual Studio 2005 必須被告知來連線到 domain_name \ user_name @ remote_computer 而非只是告訴連線到 remote_computer
讓我們先考慮清楚地瞭解這種情況的範例。Molly 克拉克和 Adam Barr 是 Adventure Works 在這兩個員工。運動天地具有名為冒險 works.com Microsoft Windows NT 網域。Adam Molly 撰寫了一些軟體發生的問題。Molly 想要偵錯 Adam 的電腦上的這個軟體。 Molly 和 Adam 請依照下列步驟執行:
  1. Adam 他的電腦上沒有遠端偵錯工具。若要設定遠端偵錯工具,Molly 決定出程式 Files\Microsoft Visual Studio 8\Common7\IDE\Remote 偵錯工具目錄,她的電腦上共用。她建立稱為遠端檔案共用。
  2. Adam 執行 \\MollyComputerName\Remote\x86\Msvsmon.exe。
  3. 遠端偵錯工具啟動後 Adam 會藉由使用 [權限] 對話方塊中設定遠端偵錯工具的 [工具] 功能表上按一下 權限。他會提供給偵錯的 Molly 權限。

    附註Adam 藉由傳遞 / 允許 選項,遠端偵錯工具啟動時,也可以設定遠端偵錯工具。
  4. Molly 啟動 Visual Studio 2005。
  5. 若要開啟 附加至處理序] 對話方塊,Molly 按一下 [工具] 功能表上的 附加至處理序
  6. Molly 連接至 Adam 的電腦在 辨識符號] 方塊中輸入 adventure-works.com\Adam@AdamComputerName 即可。
  7. 可使用的處理序,Molly 選取背景工作處理序她應用程式正在使用,然後按一下 [附加]。
  8. Molly 開啟瀏覽器,並提供 URL,遠端的應用程式。位置中斷點會放置在應用程式執行會停止。

在 ASP.NET 中和其他伺服器環境中執行遠端偵錯工具服務

偵錯 ASP.NET 和其他伺服器環境中,您可以以 Windows 服務 (遠端偵錯工具服務) 執行遠端偵錯監視。

若要將遠端偵錯監視設定為一個服務,請依照下列步驟執行:
  1. 按一下 [開始],按一下 Microsoft Visual Studio 2005]、 [Visual Studio 工具,然後再按一下 [Visual Studio 2005 遠端偵錯工具組態精靈]。
  2. 請依照精靈來設定為服務的遠端偵錯。

如何設定遠端偵錯環境

將適當的使用者新增至遠端電腦上偵錯工具使用者群組

要這麼做,請您執行下列步驟:
  1. 在遠端電腦上用滑鼠右鍵按一下 [我的電腦,然後按一下 [管理]。
  2. 在 [電腦管理],展開 [系統工具]、 展開 [本機使用者和群組,然後再展開 [群組]
  3. 連按兩下 [偵錯工具使用者]。
  4. 若要新增適當使用者至偵錯工具使用者] 群組,按一下 [偵錯工具使用者屬性] 對話方塊中的 [新增]。
  5. 選取使用者、 電腦或群組] 方塊請適當的使用者輸入中在 [輸入物件名稱來選取] 方塊,然後按一下 [[確定] 兩次。比方說輸入 Domain1 \ User1
  6. 結束 「 電腦管理 」 工具。
附註在 Visual Studio.NET 2003年和 Visual Studio.NET 2002年,使用者嘗試執行遠端偵錯,必須是系統管理員群組的成員。不過,Visual 的 Studio 2005 中我們不需要系統管理員群組中新增這位使用者。

下表顯示帳戶可以存取電腦。
摺疊此表格展開此表格
電腦安裝程式本機系統帳戶網域帳戶在這兩部電腦上具有相同的使用者名稱和密碼的本機帳戶
在相同網域上的兩部電腦是的是的是的
這兩台電腦上具有雙向信任關係的網域是的
工作群組上的一或兩部電腦是的
在不同網域上的電腦是的

請確定遠端伺服器上已經安裝 Visual Studio 2005 遠端偵錯元件

如果您不要從遠端共用執行 Msvsmon.exe,您必須安裝遠端偵錯元件。如果要安裝遠端偵錯元件,請依照下列步驟執行:
  1. 將最後的 Visual Studio 2005 CD 插入到遠端的電腦。 比方說如果複本,Visual Studio 2005 隨附的四個 CD,將第四個 CD 插入遠端電腦。
  2. 瀏覽到遠端偵錯工具資料夾,在 CD 上。
  3. 遠端偵錯工具資料夾包含也就是 x86、 x 64 和 IA-64 (僅支援 SKU) 每個處理器架構的子資料夾。開啟符合您的電腦處理器的子資料夾。
  4. 啟動 Rdbgsetup.exe,然後再依照指示完成安裝程式。

啟用遠端伺服器上的遠端偵錯

若要啟用遠端伺服器上的 [遠端偵錯,您可以執行下列之一:
  • 在遠端伺服器從 Visual Studio 2005 CD 上安裝遠端偵錯監視。 要這麼做,請您執行下列步驟:
    1. 當您啟動偵錯時,手動啟動從本機檔案系統 Msvsmon.exe。當您完成時,可以停止處理序偵錯。
    2. 啟動 Visual Studio 2005 遠端偵錯工具服務 (Msvsmon.exe 以服務方式執行)。預設情況下,已停用服務。您需要使用 「 服務 Microsoft 管理主控台 (MMC)] 嵌入式管理單元,以啟用並啟動服務。一旦服務啟動時您可以自動偵錯 ASP.NET 應用程式。
  • 從共用遠端執行 Msvsmon.exe。藉由共用出 Visual Studio 2005 電腦上的遠端偵錯元件目錄,您可以在遠端伺服器上執行 Msvsmon.exe 而不在伺服器上安裝任何項目。
Msvsmon.exe 安裝至下列路徑:
  • Install path\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x86
  • Install path\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x64
  • Install path\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\ia64
一旦您在遠端伺服器上啟動 Msvsmon.exe,您可以開啟遠端專案並偵錯。

您必須要符合通用語言執行階段 (CLR) 版本 Msvsmon.exe.config 檔案。如果您安裝 Visual Studio 2005 Service Pack,CLR 版本是版本 2.0.50727。

當您從共用執行 Msvsmon.exe 時,下列的偵錯工具功能將無法運作:
  • 在執行 Microsoft Windows 千禧版或 Microsoft Windows 98 的電腦上偵錯
  • 逐步執行 XML Web 服務 (手動附加仍有可能)
  • 自動偵錯 ASP.NET Web 應用程式或 ATL Server 為基礎網際網路伺服器 API (ISAPI) 延伸的 (再次,手動附加仍有可能)
如需有關如何設定遠端偵錯的詳細資訊,請造訪下列 MSDN 網站:
http://msdn2.microsoft.com/en-us/library/bt727f1t.aspx (http://msdn2.microsoft.com/en-us/library/bt727f1t.aspx)

建置 Web 解決方案

要這麼做,請您執行下列步驟:
  1. 按一下 [開始],指向 [所有程式]、 都指向 [Microsoft Visual Studio 2005,然後再按一下 [Microsoft Visual Studio 2005]。
  2. 在 [檔案] 功能表上指向 [新增],然後按一下 [網站]。
  3. 在 [新增網站] 對話方塊按一下 [Visual Web Developer 安裝範本] 下的 [ASP.NET 網站]。
  4. 在 [位置] 方塊中,按一下 [HTTP]。
  5. 該位置請輸入遠端伺服器上的路徑。比方說輸入 http:// RemoteServerName / WebApplicationName

    附註請確定從 Microsoft FrontPage 伺服器擴充程式會安裝在遠端伺服器上。如果您沒有安裝在遠端伺服器上的 FrontPage 伺服器擴充程式,您會收到下列錯誤訊息:
    摺疊此圖像展開此圖像
    Error message
  6. 在設計工具的檢視中開啟 Default.aspx。
  7. 按兩下設計工具以開啟程式碼編輯器。 您會放置在 Page_Load 事件。
  8. 將下列程式碼行加入至 Page_Load 事件。
    ' Visual Basic
    Response.Write("Hello World")
    
    // C#
    Response.Write("Hello World"); 
    
  9. 在目前這一行設定中斷點,請按 F9。

請確認該遠端偵錯的運作方式

若要確認該遠端偵錯運作,按下 F5 以偵錯模式中執行應用程式]。偵錯工具應該中斷在行放置中斷點的位置。

當您開始偵錯遠端偵錯監視器看起來像下列遠端伺服器上:
摺疊此圖像展開此圖像
Remote Debugging Monitor
這告訴我們使用者連接到偵錯應用程式。

如果不叫用中斷點時我們應該考慮查看 Microsoft 網際網路資訊服務 (IIS) 記錄檔。 IIS 記錄檔將會協助您判斷哪些步驟無法正常執行或偵錯動詞命令是否傳送至 Web 伺服器。IIS 記錄檔位於下列位置:
%windir%\system32\logfiles\w3svc Number
附註Number 是 Web 站台 IIS 執行個體數目。

秘訣您可以也按一下 [開始]、 按一下 [執行],然後再輸入 記錄檔 移至預設記錄檔目錄。

您可以藉由檢查 IIS 取得路徑屬性:
  1. 啟動 IIS 管理員。
  2. 以滑鼠右鍵按一下您要建立專案對,並再按 [內容 的網站。
  3. 在 [網站] 索引標籤上按一下 [啟用記錄] 下的 [內容]。

    底部的 [一般內容] 索引標籤會列出記錄檔路徑和目錄。
這是我們能夠成功地偵錯應用程式後 IIS 記錄檔的外觀。我已顯示項目我們正在 for.
#Software: Microsoft Internet Information Services 5.1
#Version: 1.0
#Date: 2006-09-11 14:32:56
#Fields: time c-ip cs-method cs-uri-stem sc-status 
14:32:56 X.X.X.X POST /remoteApp/_vti_bin/_vti_aut/author.dll 200

Look for the debug verb after the IP address (in our case it's X.X.X.X). This indicates that the debug verb is sent to the Web server successfully.
14:32:58 X.X.X.X  DEBUG /remoteApp/Default.aspx 200
14:33:02 X.X.X.X GET /remoteApp/Default.aspx 200
14:33:05 X.X.X.X DEBUG /remoteApp/Default.aspx 200
如果找不到偵錯動詞命令傳送到執行 IIS 的伺服器,抓取下列的偵錯動詞命令記錄檔以取得有關什麼完全失敗的詳細資訊:
%TMP%\Visual 攝影 Web debugger.log

實作遠端偵錯之前待辦事項

  • 您必須參考遠端電腦使用電腦名稱,而不是 IP 位址。
  • ASP.NET 應用程式的 Web.config 檔不能包含任何錯誤,且 編譯 項目都必須有 偵錯] 屬性設定為 True
  • 一個至少 Visual Studio 2005 遠端偵錯元件必須安裝在遠端電腦除非您想要執行 Msvsmon.exe 從遠端共用。

    附註請確定您共用出程式 Files\Microsoft Visual Studio 8\Common7\IDE\Remote 偵錯工具目錄,以及不只是在子資料夾。比方說如果共用只是 x 86 資料夾,然後再從遠端共享執行 Msvsmon.exe,而不需安裝遠端偵錯元件您會收到下列的錯誤訊息:
    摺疊此圖像展開此圖像
    Error message
  • 請確定防火牆沒有封鎖遠端偵錯。如果您啟用防火牆,而且它的封鎖執行,您會收到下列錯誤訊息:
    摺疊此圖像展開此圖像
    Error message
  • 站台的安全性設定必須允許整合式的 Windows 驗證。站台也可能會允許匿名存取。
  • 請確定遠端偵錯監視遠端伺服器上執行。如果不執行 Msvsmon.exe 您會收到下列錯誤訊息:
    摺疊此圖像展開此圖像
    Error message

相關連結

遠端偵錯錯誤和疑難排解
http://msdn2.microsoft.com/en-us/library/2ys11ead.aspx (http://msdn2.microsoft.com/en-us/library/2ys11ead.aspx)

如何指定偵錯的.NET Framework 版本
http://msdn2.microsoft.com/en-us/library/ms241897.aspx (http://msdn2.microsoft.com/en-us/library/ms241897.aspx)
908099? (http://support.microsoft.com/kb/908099/ ) 如何開啟 「 服務套件 2 Windows XP 中的 Visual Studio 2005 的遠端偵錯
919823? (http://support.microsoft.com/kb/919823/ ) 當您嘗試連線到遠端偵錯監視在 Visual Studio 2005 中的執行個體時,可能會收到錯誤訊息
948040? (http://support.microsoft.com/kb/948040/ ) 嘗試設定遠端偵錯跨網路網域時的問題
如往常請隨意送出您想要在將來解決資料行的主題或使用 Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) 表單的知識庫中的想法。

這篇文章中的資訊適用於:
  • Microsoft ASP.NET 2.0
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Express Edition
關鍵字:?
kbmt kbgraphxlink kbhowto KB910448 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:910448? (http://support.microsoft.com/kb/910448/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。