任务调度程序控制台应用程序及时显示调试程序,防止程序再次运行

问题描述 投票:2回答:1

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

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

有办法防止这种情况吗?我希望JIT调试器不会出现,所以应用程序已经完成,它将在下次尝试时再次运行。

exception scheduled-tasks console-application windows-server-2012-r2 taskscheduler
1个回答
0
投票

一个问题是该计划以异常结束的原因?如果您不需要异常,那么将一些重定向到文件中会不会更好。

我个人会在注册表中禁用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

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

© www.soinside.com 2019 - 2024. All rights reserved.