我们有一台运行WinSrv 2008( 不是 R2)的服务器。 在这台服务器上有一个计划任务,它在启动时运行,只是连续运行,每隔数据库设置一个时间间隔醒来工作,然后回去睡觉(客户希望能够通过相关网站控制时间间隔,这就是为什么它是作为一个连续运行的应用程序,而不是使用任务计划程序的时间)。
这个应用程序有一个问题,只有在运行几个小时之后才会发生,这使得在代码中很难尝试debugging,因为它总是运行正常,我不能坐下来等待我的代码几个小时,小时。
在每一行或每行之后都要进行大量的状态debugging之前,我想知道是否有任何方法可以login到服务器并查看在Task Scheduler下运行的实际程序?
我的意思是,通过在Scheduler中运行任务,它运行在一种不可见的后台login会话中。 有没有办法将它“采用”到我的login会话,以便我可以看到程序窗口, as it is currently running ,所以我可以看到它的状态?
首先,我必须谴责你不把这个应用程序作为本地的Windows服务。 它被devise成在启动时,在后台运行,没有用户交互,永远(禁止pipe理员干预)。 这是一个什么是Windows服务的教科书案例。 滥用任务计划程序的function来启动一个永远运行的应用程序只是马虎/懒惰的编程。 有很多预先编写的模板,你可以使用任何语言你的应用程序正在使用我敢肯定。
所有这一切说,为什么不只是在控制台会话的服务器上手动运行这个应用程序,你可以看到它,只是等待它像平常一样失败?
如果从Microsoft运行Process Explorer ,则应该能够看到从Task Scheduler进程派生的进程,即从svchost.exe。 如果您右键单击相关的过程,并且如果适用,您可以select切换到窗口。 但是,我认为这取决于您的应用程序。 也可以考虑使用事件查看器或日志文件来尝试确定是什么导致了问题。