Visual Studio 2015 调试完成后尝试访问光驱
Visual Studio 2015 Tries to Access Optical Drive After Debug Finished
我最近在一台新计算机上安装了 Microsoft VS 2105 Professional (Update 3),但遇到了一个奇怪的问题。每当我尝试调试程序时,当我停止调试器时,它会尝试访问我的 DVD 驱动器,这既奇怪又非常烦人。除了我通常的日常项目外,我还尝试使用干净的 "Hello World" 风格的 C++ 和 C# 项目,并且它继续表现相同。
我已禁用诊断工具(工具->选项->调试->在调试时禁用启用诊断工具)以及 运行安全模式下的 VS (devenv /SafeMode),但问题仍然存在。我使用 "Process Monitor" 来识别触发访问 DVD 驱动器的程序,显然 "StandardCollector.Service.exe" 是罪魁祸首。您可以在下方的 Process Monitor 中找到日志(我删除了时间和 PID 列)。我知道这个特定进程 (StandardCollector.Service.exe) 有一些报告的问题(内存),但为什么它试图 create/access 我的 DVD 驱动器上的文件对我来说是个谜。我的 OS 是 Windows 10 家庭版。任何人都可以针对此问题提出任何诊断或解决方案吗?
此行为仅由 Visual Studio 在停止调试过程时发生,而不是任何其他程序(Windows 在启动时发生相同,但我认为这是自然的)。我需要补充一点,如果我从设备管理器禁用然后启用 DVD 驱动器,问题就会消失(调试完成后无法访问 DVD 驱动器)但它会在 1-2 分钟后再次出现。
************************************ LOG FROM PROCESS MONITOR:
StandardCollector.Service.exe IRP_MJ_CREATE H: SUCCESS Desired
Access: Generic Read/Write, Dis"Apple-tab-span"
style="white-space:pre;"> IRP_MJ_CREATE H:\ INVALID PARAMETER Desired
Access: Synchronize, Dis"Apple-tab-span" style="white-space:pre;">
IRP_MJ_DEVICE_CONTROL H: FAST IO DISALLOWED Control:
IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe
IRP_MJ_DEVICE_CONTROL H: SUCCESS Control:
IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe
IRP_MJ_DEVICE_CONTROL H: FAST IO DISALLOWED Control:
IOCTL_DISK_GET_DRIVE_GEOMETRY StandardCollector.Service.exe
IRP_MJ_DEVICE_CONTROL H: NO MEDIA Control:
IOCTL_DISK_GET_DRIVE_GEOMETRY StandardCollector.Service.exe
IRP_MJ_DEVICE_CONTROL H: FAST IO DISALLOWED Control:
IOCTL_STORAGE_QUERY_PROPERTY StandardCollector.Service.exe
IRP_MJ_DEVICE_CONTROL H: SUCCESS Control: IOCTL_STORAGE_QUERY_PROPERTY
StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: FAST IO
DISALLOWED Control: IOCTL_CDROM_GET_CONFIGURATION
StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: SUCCESS
Control: IOCTL_CDROM_GET_CONFIGURATION StandardCollector.Service.exe
IRP_MJ_DEVICE_CONTROL H: FAST IO DISALLOWED Control:
IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe
IRP_MJ_DEVICE_CONTROL H: SUCCESS Control:
IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe
IRP_MJ_CLEANUP H: SUCCESS StandardCollector.Service.exe IRP_MJ_CLOSE
H: SUCCESS
您可以通过以下步骤禁用标准收集器服务。
- 从此 link 下载 Windows 服务管理器:http://tools.sysprogs.org/srvman/
- 使用服务管理器 UI 查找 Visual Studio 标准收集器服务。服务的名称是 "VSStandardCollectorService140".
- Select服务器管理器中的VSStandardCollectorService140服务并单击UI中的属性按钮禁用该服务。
现在无论启动调试还是停止调试,这个服务都无法启动。
我在 Visual Studio 2017 年发生了同样的事情。对我来说最简单的解决方案是转到设备管理器,右键单击驱动器,然后 select "Disable device"。我再也不用光驱了,所以效果很好。如果我需要使用它,可以很容易地从设备管理器重新启用它。
VS2019
您无需安装任何东西。
只需执行以下操作:
- ⊞ Win + R
- services.msc
- 找到
Visual Studio Standard Collector Service
- 双击并设置
Startup type
为disabled
目前我不知道有任何副作用。
有任何问题请留言,我会更新答案。
我最近在一台新计算机上安装了 Microsoft VS 2105 Professional (Update 3),但遇到了一个奇怪的问题。每当我尝试调试程序时,当我停止调试器时,它会尝试访问我的 DVD 驱动器,这既奇怪又非常烦人。除了我通常的日常项目外,我还尝试使用干净的 "Hello World" 风格的 C++ 和 C# 项目,并且它继续表现相同。
我已禁用诊断工具(工具->选项->调试->在调试时禁用启用诊断工具)以及 运行安全模式下的 VS (devenv /SafeMode),但问题仍然存在。我使用 "Process Monitor" 来识别触发访问 DVD 驱动器的程序,显然 "StandardCollector.Service.exe" 是罪魁祸首。您可以在下方的 Process Monitor 中找到日志(我删除了时间和 PID 列)。我知道这个特定进程 (StandardCollector.Service.exe) 有一些报告的问题(内存),但为什么它试图 create/access 我的 DVD 驱动器上的文件对我来说是个谜。我的 OS 是 Windows 10 家庭版。任何人都可以针对此问题提出任何诊断或解决方案吗?
此行为仅由 Visual Studio 在停止调试过程时发生,而不是任何其他程序(Windows 在启动时发生相同,但我认为这是自然的)。我需要补充一点,如果我从设备管理器禁用然后启用 DVD 驱动器,问题就会消失(调试完成后无法访问 DVD 驱动器)但它会在 1-2 分钟后再次出现。
************************************ LOG FROM PROCESS MONITOR:
StandardCollector.Service.exe IRP_MJ_CREATE H: SUCCESS Desired Access: Generic Read/Write, Dis"Apple-tab-span" style="white-space:pre;"> IRP_MJ_CREATE H:\ INVALID PARAMETER Desired Access: Synchronize, Dis"Apple-tab-span" style="white-space:pre;"> IRP_MJ_DEVICE_CONTROL H: FAST IO DISALLOWED Control: IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: SUCCESS Control: IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: FAST IO DISALLOWED Control: IOCTL_DISK_GET_DRIVE_GEOMETRY StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: NO MEDIA Control: IOCTL_DISK_GET_DRIVE_GEOMETRY StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: FAST IO DISALLOWED Control: IOCTL_STORAGE_QUERY_PROPERTY StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: SUCCESS Control: IOCTL_STORAGE_QUERY_PROPERTY StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: FAST IO DISALLOWED Control: IOCTL_CDROM_GET_CONFIGURATION StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: SUCCESS Control: IOCTL_CDROM_GET_CONFIGURATION StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: FAST IO DISALLOWED Control: IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H: SUCCESS Control: IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe IRP_MJ_CLEANUP H: SUCCESS StandardCollector.Service.exe IRP_MJ_CLOSE H: SUCCESS
您可以通过以下步骤禁用标准收集器服务。
- 从此 link 下载 Windows 服务管理器:http://tools.sysprogs.org/srvman/
- 使用服务管理器 UI 查找 Visual Studio 标准收集器服务。服务的名称是 "VSStandardCollectorService140".
- Select服务器管理器中的VSStandardCollectorService140服务并单击UI中的属性按钮禁用该服务。
现在无论启动调试还是停止调试,这个服务都无法启动。
我在 Visual Studio 2017 年发生了同样的事情。对我来说最简单的解决方案是转到设备管理器,右键单击驱动器,然后 select "Disable device"。我再也不用光驱了,所以效果很好。如果我需要使用它,可以很容易地从设备管理器重新启用它。
VS2019
您无需安装任何东西。 只需执行以下操作:
- ⊞ Win + R
- services.msc
- 找到
Visual Studio Standard Collector Service
- 双击并设置
Startup type
为disabled
目前我不知道有任何副作用。
有任何问题请留言,我会更新答案。