我有一个控制台应用程序,每5分钟运行一次Windows Server任务计划。如果程序在5分钟后仍然运行,则程序不再运行,因此一次只能运行一个实例。
但是,当发生异常时,即时调试器出现并且不会消失,从而阻止应用程序再次运行。
有办法防止这种情况吗?我希望JIT调试器不会出现,所以应用程序已经完成,它将在下次尝试时再次运行。
一个问题是该计划以异常结束的原因?如果您不需要异常,那么将一些重定向到文件中会不会更好。
我个人会在注册表中禁用JIT调试器。从visual studio docs,当VS没有安装在计算机上时,情况可能就是这样。
即使您的计算机上不再安装Visual Studio,仍可以启用即时调试。如果不再安装Visual Studio,则可以通过编辑Windows注册表来禁用实时调试。
要通过编辑注册表来禁用实时调试:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
确保不要删除或更改任何其他注册表项。