调试完成后,Visual Studio 2015尝试访问光盘驱动器

时间:2016-11-26 00:04:20

标签: visual-studio-2015 ide visual-studio-debugging

我最近在新计算机上安装了Microsoft VS 2105 Professional(Update 3),我遇到了一种奇怪的行为。每当我尝试调试程序时,当我停止调试器时,它会尝试访问我的DVD驱动器,这既奇怪又烦人。除了我通常的日常项目之外,我尝试使用干净的“Hello World”风格的C ++和C#项目,它仍然表现得一样。

我已禁用诊断工具(工具 - >选项 - >调试 - >在调试时禁用启用诊断工具)并且还以安全模式运行VS(devenv / SafeMode),但问题仍然存在。我使用“进程监视器”来识别触发访问DVD驱动器的程序,显然“StandardCollector.Service.exe”是罪魁祸首。您可以从下面的Process Monitor中找到日志(我删除了时间和PID列)。我知道有一些报告的问题(内存)与这个特定的过程(StandardCollector.Service.exe),但为什么它试图创建/访问我的DVD驱动器上的文件对我来说是一个谜。我的操作系统是Windows 10家庭版。任何人都可以为这个问题建议任何诊断或解决方案吗?

此行为仅在Visual Studio停止调试过程时发生,而不是任何其他程序(Windows在启动时也是如此,但我认为这很自然)。我需要补充一点,如果我禁用然后从设备管理器启用DVD驱动器,问题就会消失(调试完成后无法访问DVD驱动器),但1-2分钟后会再次出现。

  

************************************来自过程监控的日志:

     

StandardCollector.Service.exe IRP_MJ_CREATE H:SUCCESS Desired   访问:通用读/写,Dis“Apple-tab-span”   风格= “空白:预;” > IRP_MJ_CREATE H:\ INVALID PARAMETER所需   访问:同步,Dis“Apple-tab-span”style =“white-space:pre;”>   IRP_MJ_DEVICE_CONTROL H:FAST IO DISALLOWED控制:   IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe   IRP_MJ_DEVICE_CONTROL H:成功控制:   IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe   IRP_MJ_DEVICE_CONTROL H:FAST IO DISALLOWED控制:   IOCTL_DISK_GET_DRIVE_GEOMETRY StandardCollector.Service.exe   IRP_MJ_DEVICE_CONTROL H:无媒体控制:   IOCTL_DISK_GET_DRIVE_GEOMETRY StandardCollector.Service.exe   IRP_MJ_DEVICE_CONTROL H:FAST IO DISALLOWED控制:   IOCTL_STORAGE_QUERY_PROPERTY StandardCollector.Service.exe   IRP_MJ_DEVICE_CONTROL H:成功控制:IOCTL_STORAGE_QUERY_PROPERTY   StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:快速IO   DISALLOWED控制:IOCTL_CDROM_GET_CONFIGURATION   StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:成功   控制:IOCTL_CDROM_GET_CONFIGURATION StandardCollector.Service.exe   IRP_MJ_DEVICE_CONTROL H:FAST IO DISALLOWED控制:   IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe   IRP_MJ_DEVICE_CONTROL H:成功控制:   IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe   IRP_MJ_CLEANUP H:成功StandardCollector.Service.exe IRP_MJ_CLOSE   H:成功

3 个答案:

答案 0 :(得分:4)

您可以按照以下步骤禁用标准收集器服务。

  1. 从以下链接下载Windows服务管理器:http://tools.sysprogs.org/srvman/
  2. 使用Service Manager UI查找Visual Studio标准收集器服务。该服务的名称是“VSStandardCollectorService140”。
  3. 在服务器管理器中选择VSStandardCollectorService140服务,然后单击UI中的“属性”按钮以禁用此服务。 enter image description here
  4. 现在无论何时启动调试或停止调试,都无法启动此服务。

答案 1 :(得分:1)

在Visual Studio 2017中,我遇到同样的事情。对我来说最简单的解决方案是转到设备管理器,右键单击驱动器,然后选择“禁用设备”。我再也不用光驱了,所以这很好用。如果我需要使用它,可以从设备管理器轻松重新启用它。

答案 2 :(得分:1)

VS2019

您无需安装任何东西。 只需执行以下操作:

  1. ⊞Win + R
  2. services.msc
  3. 找到Visual Studio Standard Collector Service
  4. 双击它,并将Startup type设置为disabled

enter image description here

目前我不知道有任何副作用。

如果您有任何意见,请发表评论,我将更新答案。