天天看點

Visual Studio 2017 調試器的工作程序(msvsmon.exe)意外退出 調試将終止

原文: Visual Studio 2017 調試器的工作程序(msvsmon.exe)意外退出 調試将終止 開發環境:

  • Windows 10 in Parallels Desktop
  • Visual Studio 15.6

場景還原:

使用 Visual Studio 15.6 (即 Visual Studio 2017) 建立 ASP.NET Core MVC 項目,啟動調試,提示:

調試器的工作程序(msvsmon.exe)意外退出。調試将終止           

其實這個問題曾經多次遇到過,但是都沒做記錄,導緻每次都得重新搜尋解決方案。

打開「事件檢視器」,依次點選「Windows 日志」-「應用程式」,可以看到兩條「錯誤」級别的日志:

Visual Studio 2017 調試器的工作程式(msvsmon.exe)意外退出 調試将終止

其中,來源為"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 後重新開機電腦,反複啟動調試沒有問題,完美!

繼續閱讀