場景:
客戶的計算機運行程序出現異常,由於辦公場所不在一起,無法直接在客戶的機器上調試。此時希望可以直接在開發人員的計算機(本地機器)上遠程調試客戶機上的軟件。
假設:
-
本地機器的系統賬戶為 GIS,密碼為 111
-
客戶機器的計算機名為 Client
-
要調試的程序名稱為 test.exe
解決方法:
1、客戶機器配置
-
新建與本地機器一致的系統賬戶
-
要保證賬戶和密碼一致
-
在控制面板 -> 用戶賬戶 -> 添加GIS賬戶,並設置密碼為111
-
切換到GIS賬戶中
-
開啟遠程服務
-
控制面板 -> 管理工具 -> 服務 -> 開啟Remote Desktop Service服務
-
設置本地安全策略
-
控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 安全選項 -> 網絡訪問:本地賬戶的共享和安全模型 -> 設置為“經典 - 對本地用戶進行身份驗證,不改變其本來身份”
-
關閉防火牆
-
控制面板 -> Windows防火牆 -> 打開或關閉Windows防火牆 -> 關閉防火牆
-
本地新建文件夾bin,共享文件夾
-
控制面板 -> 用戶賬戶 -> 啟動Guest賬戶
-
控制面板 -> 家庭組 -> 更改高級共享設置 -> 家庭或工作 -> 密碼保護的共享 -> 關閉密碼保護共享
-
右鍵點擊bin文件夾 -> 特定用戶 -> 添加Guest用戶 -> 修改“權限級別為讀/寫” -> 共享
-
打開本地機器共享的Remote Debugger文件夾,啟動適當平台下的msvsmon.exe
-
若出現提示“此計算機上的Windows防火牆當前阻止了遠程調試。遠程調試要求允許調試器從網絡接收信息。。。”,請勾選“取消禁止從任何計算機進行遠程調試的限制”。
2、本地機器配置
-
開啟遠程服務
-
控制面板 -> 管理工具 -> 服務 -> 開啟Remote Desktop Service服務
-
設置本地安全策略
-
控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 安全選項 -> 網絡訪問:本地賬戶的共享和安全模型 -> 設置為“經典 - 對本地用戶進行身份驗證,不改變其本來身份”
-
共享Remote Debugger文件夾
-
文件夾在VS安裝目錄下的“Common7\IDE”中
-
控制面板 -> 用戶賬戶 -> 啟動Guest賬戶
-
控制面板 -> 家庭組 -> 更改高級共享設置 -> 家庭或工作 -> 密碼保護的共享 -> 關閉密碼保護共享
-
右鍵點擊bin文件夾 -> 特定用戶 -> 添加Guest用戶 -> 修改“權限級別為讀/寫” -> 共享
-
VS中設置待調試項目的屬性為遠程調試
-
項目屬性 -> 生成 -> 輸出 -> 輸出路徑 -> 設置為客戶機器的共享文件夾名稱
\\Client\bin\
-
項目屬性 -> 調試 -> 啟動 -> 啟動外部程序 -> 設置為
\\Client\bin\test.exe
-
項目屬性 -> 調試 -> 啟動選項 -> 工作目錄 -> 設置為
\\Client\bin\
-
項目屬性 -> 調試 -> 啟動選項 -> 使用遠程計算機 -> 設置為
Client
-
啟動調試,就可以開始調試了
-
客戶機器上自動啟動test.exe
-
客戶機器上的遠程調試監視器顯示“已連接”
說明:
-
該解決方法的客戶機器及本地機器都是Win7 64位操作系統,其他系統可參考處理。
-
該解決方法只在VS2010中測試,其他版本可參考處理。
-
當然,這個方法的根本前提是兩台機器可以互相ping通。
調試連接錯誤總結:
錯誤:“Microsoft Visual Studio 遠程調試監視器”(MSVSMON.EXE) 似乎沒有在遠程計算機上運行。
解決方案:
拷貝:本機vs2010安裝目錄下(D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger)
的Remote Debugger 目錄全部拷貝到遠程機器上面,
然后運行遠程機器Remote Debugger目錄下的MSVSMON.EXE程序到遠程機器上面;
注意:如果本機程序是X86的,則運行X86目錄下面的MSVSMON.EXE程序即可
參考文檔:http://my.oschina.net/u/2279991/blog/383694
