Visual Studio 2017 调试器的工作进程(msvsmon.exe)意外退出 调试将终止

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
云防火墙,500元 1000GB
简介: 原文: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)意外退出。
原文: 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 日志」-「应用程序」,可以看到两条「错误」级别的日志:
img_71b25f4cdc3bc657c652e8ffdbc57cb2.jpe

其中,来源为"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 后重启电脑,反复启动调试没有问题,完美!

目录
相关文章
|
存储 程序员 编译器
Visual Studio 2022 程序员必须知道高效调试手段与技巧(下)终章
Visual Studio 2022 程序员必须知道高效调试手段与技巧(下)终章
153 0
|
27天前
|
微服务
微服务实践之使用 Visual Studio 2022 调试Dapr 应用程序
微服务实践之使用 Visual Studio 2022 调试Dapr 应用程序
39 2
|
5月前
|
存储 分布式数据库 API
技术好文:VisualC++查看文件被哪个进程占用
技术好文:VisualC++查看文件被哪个进程占用
|
4月前
|
弹性计算 DataWorks 关系型数据库
DataWorks操作报错合集之DataX在执行过程中接收到了意外的信号15,导致进程被终止,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
算法 Unix Linux
Linux进程与信号:正常与异常的退出机制探索
Linux进程与信号:正常与异常的退出机制探索
452 1
|
6月前
|
缓存 Unix Linux
【Linux】—— 进程的创建和退出
【Linux】—— 进程的创建和退出
|
6月前
在visual studio中调试程序 管理员权限添加
在visual studio中调试程序 管理员权限添加
114 0
|
12月前
VisualStudio 调试 添加命令行参数
VisualStudio 调试 添加命令行参数
77 0
|
应用服务中间件 Apache Windows
Apache Tomcat 9.0 Tomcat9服务无法启动,提示“Windows无法启动Apache Tomcat……错误1067:进程意外终止
Apache Tomcat 9.0 Tomcat9服务无法启动,提示“Windows无法启动Apache Tomcat……错误1067:进程意外终止
640 0
Apache Tomcat 9.0 Tomcat9服务无法启动,提示“Windows无法启动Apache Tomcat……错误1067:进程意外终止
|
存储 程序员 C++
Visual Studio 2022 程序员必须知道高效调试手段与技巧(中)
Visual Studio 2022 程序员必须知道高效调试手段与技巧(中)
242 0