在不同的登录会话下查看程序?(Windows Server 2008)

在不同的登录会话下查看程序?(Windows Server 2008)

我们有一台运行 WinSrv 2008 的服务器(不是R2)。此服务器上有一个计划任务,它在启动时运行并连续运行,按照数据库设置的间隔唤醒以执行工作,然后再返回睡眠状态(客户端希望能够通过相关网站控制间隔,这就是为什么它作为连续运行的应用程序而不是使用任务计划程序的计时来完成)。

但是应用程序存在一个问题,只有在运行数小时后才会发生,这使得很难在代码中尝试调试,因为它总是运行良好,我不能坐着等待我的代码数小时。

在我将大量状态调试器放在每一行之后或其他内容之前,我想知道是否有任何方法可以登录到服务器并查看在任务计划程序下运行的实际程序?

我的意思是,通过在 Scheduler 中运行任务,它会在一种不可见的后台登录会话中运行。有没有办法将它“纳入”我的登录会话中,以便我可以看到程序窗口as it is currently running,这样我就能看到它的状态了吗?

答案1

首先,我必须批评你没有将此应用程序编写为本机 Windows 服务。它被设计为在启动时在后台运行,无需用户交互,永远运行(除非管理员干预)。这是 Windows 服务的一个典型例子。滥用任务计划程序的功能来启动永远运行的应用程序只是草率/懒惰的编程。我敢肯定,有很多预先编写的模板,你可以使用它来处理你的应用程序使用的任何语言。

尽管如此,为什么不在控制台会话中在服务器上手动运行这个应用程序呢?在您那里您已经可以看到它,然后等待它像平常一样失败?

答案2

如果你跑进程探索器从 Microsoft 中,您应该能够看到由任务计划程序进程(即 svchost.exe)生成的进程。如果右键单击相关进程,如果适用,您可能可以选择切换到窗口。但是,我认为这取决于您的应用程序。可能还值得考虑使用事件查看器或日志文件来尝试确定导致问题的原因。

相关内容