【问题标题】:Task scheduler console application shows just in time debugger on exception preventing program to run again任务调度程序控制台应用程序在异常上及时显示调试器,防止程序再次运行
【发布时间】:2019-03-22 15:36:59
【问题描述】:

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

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

有没有办法防止这种情况发生?我希望 JIT 调试器不出现,以便应用程序完成并在下次尝试时再次运行。

【问题讨论】:

  • 这只是您机器上的一个“问题”,它注册了一个 JIT 调试器。当你在那台机器上安装 VS 时,一个很好的东西。具有帮助您修复程序的明确意图。在生产机器上不是问题。

标签: exception scheduled-tasks console-application windows-server-2012-r2 taskscheduler


【解决方案1】:

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

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

从 Windows 注册表禁用即时调试

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

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

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

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

    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
    

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    相关资源
    最近更新 更多