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 日志」-「应用程序」,可以看到两条「错误」级别的日志:

其中,来源为"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 2017 调试器的工作进程(msvsmon.exe)意外退出 调试将终止的更多相关文章
- Visual Studio 2019社区版:错误 MSB6006 “CL.exe”已退出,代码为 2
系统:win10 环境:Visual Studio 2019社区版 问题:错误 MSB6006 “CL.exe”已退出,代码为 2 解决方法: 1 一个类内部的定义返回类型为double的方法种没有写 ...
- Visual Studio 2017开发环境的安装
Visual Studio 2017是微软为了配合.NET战略推出的IDE开发环境,同时也是目前开发C#程序最新的工具,本节以Visual Studio 2017社区版的安装为例讲解具体的安装步骤. ...
- Visual Studio 2017 远程调试(Remote Debugger)应用
I.远程调试情景 项目部署在远程服务器或非本地环境中,需要 处理应用中遇到的一些错误时 (不能直接附加进程或F5调试应用). II. 远程调试准备 1.远程服务器--操作系统和硬件要求 MSDN 操作 ...
- Visual Studio 2017 通过SSH 调试Linux 上.NET Core
Visual Studio 2017 通过SSH 调试Linux 上.NET Core 应用程序. 本文环境 开发环境:Win10 x64 Visual Studio 2017 部署环境:Ubuntu ...
- Visual Studio 2017 调试 windows server 2016 Docker Container
网上很多文章都是在win10下,用Docker for windows工具进行Docker的安装部署的.用知道windows server 2016已经原生支持Docker了,其windows Con ...
- Visual Studio 2017 远程调试
当你将.NET程序发布到不同机子时候,想要进行调试,但机子不足以安装VS或安装VS麻烦,可以考虑使用远程调试,这里以C#项目为例,asp.net方法略有不同 原理: 首先安装VS远程调试工具,有俩种安 ...
- Visual Studio 2017中使用SourceLink调试ASP.NET Core源码
背景 当我们在学习ASP.NET Core或者调试ASP.NET Core程序的时候,有时候需要调试底层代码,但是当我们在Visual Studio中调试程序的时候,由于一些基础库或者第三方库缺少pd ...
- Visual Studio 2017调试开源项目代码
在我们的开发过程中很多时候我们会从GitHub上面下载一些开源的项目代码,然后在此基础上进行调试,正常情况下我们只需要将项目的源代码编译成Dll或者在.Net Core项目中直接引用相应的Nuget包 ...
- 如何使用Visual Studio 2017调试.net库源代码
在Visual Studio 2017按如下步骤设置: 1.取消选中(工具 - >选项 - >调试 - >仅我的代码)复选框.2.确保设置了(工具 - >选项 - >调试 ...
随机推荐
- maven的单元测试中没有
原因:BaseTest没有找到单元测试造成的 增加一个空的单元测试 @Testpublic void testNothing(){} 异常现象:在maven项目执行mvn install 或mvn t ...
- leetcode322
public class Solution { public int coinChange(int[] coins, int amount) { ) ; ]; dp[] = ; ;i <= am ...
- codestyle 设置问题
参考: https://blog.csdn.net/hugh77/article/details/43268195 使用 4 空格缩进,而非 TAB. 在小缩进(可以嵌套更深)和大缩进(更易读)之间, ...
- Java语法 [常识1]
1. Java 语言采用的是双字节Unicode 编码 . 2. 标识符就是变量.常量.方法[函数].枚举.类.接口等由写代码的猴子们制定的名字.构成标识符的字母均有一定的规范,Java语言中的命名规 ...
- 26.Hibernate-主键和映射.md
目录 1.复合主键映射 [toc] 2.集合映射 2.1Set集合 2.2其他集合 [toc] 3.集合数据的读取 [toc] 4.一对多和多对一映射 4.1概念 4.2配置和开发 4.2.1关键点 ...
- 给tomcat配置外部资源路径(应用场景:web项目访问图片视频等资源)
对于一个web项目来说,除了文字之外,图片,视频等媒体元素也是其重要的组成部分.我们知道,web项目中如果用到大量的图片.视屏的资源,我们 通常的做法是只在数据库中存储图片.视频等资源的路径,web项 ...
- ArcGIS自定义工具箱-字段值部分替换
ArcGIS自定义工具箱-字段值部分替换 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:替换某个字段中的字符串 用例:湖南省长沙市=>湖南/长沙:临湘县 ...
- 关于ie6块元素行内元素转换
1.inline元素的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的display属性设置为inline-block时,IE6/IE7浏览器是不支持的: ...
- python的条件语句
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false. Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句…… el ...
- Spring Boot 整合mybatis 使用多数据源
本人想要实现一个项目里面多个数据库源连接,所以就尝试写一个demo,不多说,先贴结构,再贴代码,可以根据以下的顺序,直接copy解决问题. 首先,dao和resource下的mappers可以用myb ...