我有一个控制台应用程序,它每5分钟运行一次Windows Server Task Schedule。如果该程序在5分钟后仍在运行,则该程序不会再次运行,因此一次只能运行一个实例。
但是,当发生异常时,即时调试器会出现并且不会消失,从而阻止了应用程序再次运行。
有没有办法防止这种情况?我希望JIT调试器不会出现,以便应用程序完成,并在下次尝试时再次运行。
答案 0 :(得分:0)
一个问题就是为什么程序以异常结尾?如果不需要异常,将一些重定向到文件中会不会更好。
我个人将在注册表中禁用JIT调试器。从visual studio docs开始,如果未在计算机上安装VS,则可能是这种情况。
即使您的计算机上不再安装了Visual Studio,仍可以启用即时调试。如果不再安装Visual Studio,则可以通过编辑Windows注册表来禁用即时调试。
要通过编辑注册表来禁用即时调试:
从Windows的“开始”菜单中,运行注册表编辑器(regedit.exe)。
在“注册表编辑器”窗口中,找到并删除以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
如果您的计算机运行的是 64位操作系统,请删除以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
确保不要删除或更改任何其他注册表项。