考慮以下情況:
我們有一個客戶端計算機上部署Web應用程序和客戶端報告的錯誤。然後我們嘗試在我們的本地環境(代碼存在的地方)複製問題,但無法成功。現在有兩種方法來調試客戶端安裝 - 無論是通過日誌文件還是通過visual studio調試模式。如果我們的日誌記錄不詳細,我們會在進行故障排除時做惡夢。另一種選擇是在服務器機器上安裝visual studio(這不是一個好主意)。
要解決這個遠程調試問題,我們可以使用一個叫做遠程調試監視器(MSVSMON.EXE)的小工具。它允許您從運行Visual Studio的另一臺計算機(本地開發環境)運行,調試和測試在一臺設備(客戶端計算機)上運行的應用程序。
預要件:
遠程設備和在Visual Studio計算機必須通過網絡連接或直接通過以太網電纜連接。通過互聯網調試不受支持。
遠程設備必須運行遠程調試組件。
您必須是管理員才能在遠程設備上安裝遠程調試器。要與遠程調試器通信,您必須擁有對遠程設備的用戶訪問權限。
安裝:
- 下載從Microsoft download center的Visual Studio遠程調試安裝程序。運行與遠程設備上的操作系統(x86,x64,ARM)相匹配的安裝程序(客戶端計算機 - 記住您需要管理員訪問權限才能安裝此程序)。
- 第一次安裝並啓動遠程調試器 - 出現配置遠程調試對話框
- 如果未安裝Windows服務API,請選擇安裝按鈕。
- 選擇您希望遠程調試器與之通信的網絡類型。至少必須選擇一種網絡類型。
- 要更改認證模式或爲遠程調試器指定超時值,請在遠程調試監視器上選擇選項工具菜單。
()您可以選擇在無身份驗證模式下運行遠程調試器,但強烈建議不要使用此模式。在此模式下運行時沒有網絡安全性。只有在確信網絡是不存在惡意或敵意交通風險)
- 默認情況下,遠程設備的管理員可以連接到遠程調試器。要授予或拒絕其他用戶使用遠程調試器的權限,請選擇權限上的工具菜單。
說明:
之前連接到客戶端機器,首先啓動客戶端PC上的工作進程。要啓動工作進程,您需要運行該應用程序,IIS將完成剩下的工作。
一旦啓動,打開Visual Studio的實例,其中的原代碼的開發,並導航到調試 - >附加到進程
默認情況下此列出在本地機器上運行的進程。
要連接到遠程服務器的進程,請在限定符字段(可編輯字段)中輸入機器名稱。這個細節可以從遠程調試監視器獲得。它將一次顯示帶有端口號的機器名稱遠程調試監視器(MSVSMON.EXE)已啓動。
如果您要訪問域外的遠程調試監視器,它將提示進行身份驗證。授權基於在遠程調試監視器中配置的權限(在前面討論的權限設置下)。
連接後,我們可以附加到調試應用程序所需的過程。在這種情況下,要調試ASP.Net應用程序,我們已連接到遠程計算機的W3WP.exe(客戶端安裝)。
現在Visual Studio調試將按照預期從本地計算機(開發環境)工作。對於需要更高權限的進程,您需要在遠程計算機上以管理員身份運行遠程調試監視器(MSVSMON.EXE)。
故障排除:
有時即使你安裝正確的過程中,VS調試模式不檢測的過程。這可能是由於以下原因之一:
•確保將使用程序集生成的.PDB文件複製到遠程計算機上的同一文件夾中。這將允許調試器拿起調試符號。
•確保您使用的是MSVSMON.exe的正確版本 - 64位版本用於調試64位C#應用程序 - 無法與x86應用程序實例一起使用。
參考文獻:這個程序的 部分從Microsoft instructions,blog post和stack overflow discussion服用。
我的問題是,我的機器都是我的Visual Studio上項目在D:驅動器上,而服務器只有C:驅動器+我正在開發ASP.NET網站。我解決這個問題的方法是去 - >項目屬性 - >生成 - >輸出路徑 - > c:\ inetpub \ wwwroot \ mysite \ bin。這樣,.pdb路徑在我的開發機器和服務器上都變得相同。 – kape123
要添加的一件事是Debug |選項|調試|一般|請點擊「要求源文件」以與原始版本完全匹配。我的2美分 –
這個答案並沒有真正解決我腦海中的原始問題。 – Ted