開發環境: Windows 10 in Parallels Desktop Visual Studio 15.6 場景還原: 使用 Visual Studio 15.6 (即 Visual Studio 2017) 新建 ASP.NET Core MVC 項目,啟動調試,提示: 其實這個問題曾經多次 ...
開發環境:
- Windows 10 in Parallels Desktop
- Visual Studio 15.6
場景還原:
使用 Visual Studio 15.6 (即 Visual Studio 2017) 新建 ASP.NET Core MVC 項目,啟動調試,提示:
調試器的工作進程(msvsmon.exe)意外退出。調試將終止
其實這個問題曾經多次遇到過,但是都沒做記錄,導致每次都得重新搜索解決方案。
打開「事件查看器」,依次點擊「Windows 日誌」-「應用程式」,可以看到兩條「錯誤」級別的日誌:
其中,來源為"Application Error"的日誌顯示如下:
描述:
錯誤應用程式名稱: msvsmon.exe,版本: 15.0.27428.2043,時間戳: 0x5adf7e7a
錯誤模塊名稱: unknown,版本: 0.0.0.0,時間戳: 0x00000000
異常代碼: 0xc0000005
錯誤偏移量: 0x0000000000000000
錯誤進程 ID: 0x1518
錯誤應用程式啟動時間: 0x01d3de90a8d1c526
錯誤應用程式路徑: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Remote Debugger\x64\msvsmon.exe
錯誤模塊路徑: unknown
來源為"Visual Studio Remote Debugger"的日誌顯示如下:
描述:
無法找到來自源 Visual Studio Remote Debugger 的事件 ID 1002 的描述。本地電腦上未安裝引發此事件的組件,或者安裝已損壞。可以安裝或修複本地電腦上的組件。
如果該事件產生於另一臺電腦,則必須在該事件中保存顯示信息。
以下是包含在事件中的信息:
遠程調試器遇到了嚴重的內部錯誤,必須中止遠程調試會話。請重新啟動調試。
然後 Google 到這篇文章 惱人的Visual Studio 2010崩潰重啟問題,看到作者最後關閉防火牆解決該問題後,我立即嘗試關閉防火牆重試,果然正常啟動調試器。
然後我又想到,昨晚在 Windows Server 上搭建 NGINX,遇到外網不能訪問的問題,原因就是在防火牆設置中,沒有將ngingx.exe
加入到允許應用通過防火牆進行通信
的列表。
聯想到此,我重新打開防火牆,然後將msvsmon.exe
加入到允許應用通過防火牆進行通信
的列表,並勾上專用
和公用
。
再次啟動調試,成功!
仔細看msvsmon.exe
的路徑,是在 Remote Debugger
文件夾下,意思是遠程調試嗎?因此需要通過防火牆和外網通信?
我們知道 vs 可以遠程調試另一臺機器的代碼,但是本地調試時應該不涉及外網通信,難道和我的虛擬機環境有關係?但是以前在非虛擬機環境中也遇到過。
希望有瞭解的朋友解惑!
更新:
上面的解決辦法,只成功了一次,然後第二次就不行了...
沒辦法,繼續找解決方案,嘗試用英文關鍵詞 Google
the debugger's worker process (msvsmon.exe) unexpectedly exited. debugging will be aborted
找到這篇文章 msvsmon.exe crashed when debugging,彙總了很多該問題的解決辦法,其中有一條引起了我的註意:
I too have Astrill installed. Completely uninstalling Astrill fixed the issue.
是的!我就是安裝了 Astrill,內心一陣欣喜,原來是這廝引起的!
卸載 Astrill 後重啟電腦,反覆啟動調試沒有問題,完美!