2010-07-23 14 views
0

我有一个C#控制台应用程序,它使用SNMP从超过100个服务器获取数据,然后将其写入数据库。我已经在Windows 2008 R2服务器的任务计划程序中安排了相同的内容,并且假设每15分钟后运行一次。但奇怪的部分有时会运行,有时却不会。如果我手动运行它,那么它每次都会运行。正确的尝试Catch在代码中存在,并且当异常发生时将触发邮件,但是没有任何事情发生。任务进程被创建并且动作完成同时发生。在C#中制作的实用程序中安排的实用程序行为异常奇怪!

我很困惑,请建议做些什么!

+0

只假设一秒钟,应用程序运行所用的时间超过15分钟...下一次计划运行会发生什么情况? – Oded 2010-07-23 07:09:06

+0

几乎不需要3到4分钟。如果超过14分钟,我仍然会停止目前的运行。 – 2010-07-23 07:19:20

+0

由于启动它或提供命令行参数不正确,可能会失败。你可以登录,它是如何开始的?当应用程序从调度程序运行时的工作目录?参数? – shahkalpesh 2010-07-23 07:21:51

回答

0

运行时间超过15分钟吗? (所以你可能会结束多个运行,并相互干扰?)

查看事件日志的应用程序事件,看看是否有任何程序崩溃记录。

这听起来像电子邮件通知可能无法在您的服务器上工作,所以我会添加一些跟踪:写入日志文件DateTime.Now每次启动时,也许每个服务器的名称作为它被处理,然后退出时间。当然,记录你想知道的任何异常的细节(理想情况下,添加一个未处理的异常处理程序,以便记录所有异常)。然后,您将能够看到它的执行时间,并且它正在正确处理所有内容。这将有助于诊断它是否未运行,是否正在运行,但是立即失败,还是在处理几台服务器后进行部分运行和失败。然后你可以专注于失败点。

+0

好吧,我会这样做,让我检查邮件是否正常工作。 – 2010-07-23 07:17:44

+0

谢谢杰森!你的回答引导我以正确的方式解决我的问题。首先,电子邮件不工作,我纠正了。其次,我每10分钟计划一次,最大运行时间为9分钟,如果启动失败,它将在每1分钟后重试3次以启动任务。 – 2010-07-30 07:17:32