任务调度程序控制台应用程序再次显示异常阻止程序的及时调试器 运行

Task scheduler console application shows just in time debugger on exception preventing program to run again

我有一个控制台应用程序,它每 5 分钟 运行 带有一个 Windows 服务器任务计划。如果程序在 5 分钟后仍然 运行ning,则程序不会再次 运行,因此一次只有一个实例。

但是,当发生异常时,及时调试器会出现并且不会消失,从而阻止应用程序再次 运行ning。

有什么办法可以避免这种情况吗?我希望 JIT 调试器不出现,这样应用程序就完成了,它会在下一次尝试时再次 运行。

一个问题是为什么程序以异常结束?如果不需要异常,将一些重定向到文件中不是更好吗?

我个人会在注册表中禁用 JIT 调试器。来自visual studio docs,当电脑没有安装VS时,大概就是这样。

从 Windows 注册表中禁用即时调试

即使您的计算机上不再安装 Visual Studio,实时调试仍可能启用。如果不再安装 Visual Studio,您可以通过编辑 Windows 注册表来禁用实时调试。

通过编辑注册表禁用即时调试

  1. 从 Windows 开始菜单,运行 注册表编辑器 (regedit.exe)。

  2. 在注册表编辑器window中,找到并删除以下注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
    
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
    
  3. 如果您的计算机运行正在使用 64 位 操作系统,还删除以下注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
    
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
    

确保不要删除或更改任何其他注册表项。