2013-08-02 174 views
7

如何從具有Visual Studio的其他計算機遠程調試託管應用程序。這是我曾嘗試:遠程調試託管應用程序

  1. 複製其自帶的Visual Studio的一部分到遠程計算機並運行msvsmon.exe(64位版本兩臺機器都是64位)的遠程調試文件夾。
  2. 在兩臺機器上使用相同的Windows登錄帳戶。
  3. 然後我啓動visual studio並使用附加過程。在傳輸中,我選擇「默認」,並在限定符中給出msvsmon.exe正在運行的機器的主機名。
  4. 然後我按下刷新按鈕來查看該機器上的進程列表。我可以看到,另一方面它說「用戶xyz已連接」。然而,刷新失敗,我得到以下錯誤: Error screen

我在做什麼錯在這裏?我想用VS2008 Pro和OS在兩個系統上都是Windows Server 2008 R2。

注意:我可以調試使用遠程傳輸的非託管應用程序,沒有任何問題。

+2

使用[MSDN文章(http://msdn.microsoft.com/en-us/library/bt727f1t% 28V = VS.100%29.aspx)。防火牆是通常的掛斷,你沒有提到任何關於它的事情。 –

+0

一定還要在遠程計算機上運行msvsmon.exe *作爲管理員* –

回答

2

開始使用Visual Studio 2012可以使用遠程(無身份驗證)運輸調試託管代碼(VS以前只允許調試遠程模式的本地代碼)。

3

我也在這上面花了很多時間。 我發現使它工作100%的唯一方法是使用相同的域。使用VS2012,連接時不需要在同一個域中就可以輕鬆完成。

但對於2008年,這是爲我工作(A = VS側,B =機無VS)

1)所述的機器A(其中VS是)和B必須在相同的域中。 您還需要下載並安裝VS遠程調試器監視器B

2)您需要在B端啓動VS遠程調試器監視器,以允許傳入連接。當您第一次啓動時,它會配置防火牆以打開端口。 它還會顯示它正在偵聽的地址,即DOMAIN \ User @ hostname_B

3)在A上運行VS域管理員帳戶,您將能夠遠程調試。要在調試中連接到B,請使用顯示器在步驟2中顯示的地址

希望它能幫助您!

+0

兩臺計算機都位於不同的域中(同樣在步驟3中,當您在步驟2中使用地址時,表示我必須在「附加到」進程中輸入該地址對話框? – Asha

+0

是的,在附加進程中,你應該輸入遠程調試監視器顯示的確切地址。如果你處於不同的域,我嘗試過並且永遠不會成功,所以我創建了一個遠程調試的真正痛苦虛擬開發計算機並將其加入到域中,以便我可以使用此虛擬機進行調試。 – Fabske

+0

您是否閱讀過此內容:http://msdn.microsoft.com/en-us/library/9y5b4b4f(v=vs.90).aspx? – Fabske

5

即使您的機器是64位,請確保您正在運行的應用程序是64位。例如,如果您正在遠程計算機上調試32位應用程序,則需要運行msvsmon.exe的32位版本。

這可能不是答案,但需要檢查確認。

在2017年

更新正如我一直在使用更多的在過去的幾年中遠程調試,我注意到,我通常要工作,通過幾個問題。

  1. 確保在每臺機器上使用相同版本的msvsmon。
  2. 確保驗證配置正確(嘗試並且無需身份驗證首先工作,然後在需要時再打開它)
  3. 確保當您附加到進程時,您具有正確的「附加到」設置(即託管.NET版本,本機代碼等)
  4. 確保msvsmon正在作爲管理員或作爲同一用戶身份要調試
+0

我仍然無法設法嘗試此操作,我會盡快嘗試並更新它是否可以在我獲得一些時間後立即生效 – Asha

+0

好的。只是爲了確保您運行的是與x86兼容的程序嗎?讓我知道怎麼了。 – matrixugly

2

沒有直接回答到OP中的應用,但可能會有所幫助,並且多次幫助我擺脫類似的情況。

我會建議考慮安裝WinDBG(或類似),確保你有正確的符號\代碼設置使用它來調試。 WinDBG的學習曲線非常陡峭,但我相信這是值得的,即使在非常高的水平。它非常輕便,這意味着它在原始文章+也可用於生產環境中很有用,等等,安裝像VS這樣的東西通常不是一種選擇。

這可能不是一個選項,如果你在急於求成,但從長遠來看這是值得的。

克里斯

PS:有一些訴網絡上很好的課程,尤其是像Pluralsight(我沒有關係,只是一個快樂的客戶)網站

1

我已經花了很多。做這項工作的時間。但是我成功了,現在可以完全調試我的託管應用程序。我遵循以下任務列表使其工作:

- 將目標PC添加到域,並使用您在Visual Studio中使用的PC上的相同帳戶登錄。

- 運行正確的Visual Studio遠程調試器(msvsmon.exe),我使用2010版本。

- 關閉目標PC上的防火牆。

- 在開發計算機時爲devenv.exe(Visual Studio exe)添加Windows防火牆異常。

- 如果您將OracleVM用於虛擬PC,則網絡適配器不能處於NAT模式(我使用橋接適配器)。

- 使用的調試地址是:DOMAIN \ USER @ PCNAME(例如MyGreatDomain \ Myself @ DEBUGPC)。我需要使用「選擇」按鈕來編輯「附加到:」 - 我需要託管(v4.0)代碼,本地代碼。

-pdb文件必須位於我用來運行我的exe的同一個目錄中。我用我的exe和pdb直接將目錄映射到目標計算機上。

- 在Visual Studio中,我還必須轉至工具 - >選項,展開調試 - >常規。並取消選中啓用只是我的代碼(僅限管理)。

它非常複雜,使其工作,但它節省了後來這麼多的時間...