2011-01-10 123 views
5

我有一个简单的vb.net应用程序。当我去bin \ debug \ program.exe并双击程序运行完美。使用任务调度程序不会执行相同的程序。当我创建一个计划任务并点击'运行'时,它会弹出一个控制台窗口一秒钟,关闭。此外,这个程序用于与任务调度程序一起运行。有一天,它停止工作。计划任务将不会运行返回e0434f4d作为最后结果

PS:
我在SVN管理这个程序代码,所以我可以有把握地说,代码并没有改变。

+0

如果可能您是否尝试过在不同的机器上运行相同的应用程序?你的程序需要管理员权限吗?该计划是做什么的?你的操作系统是什么(Vista,Win 7)?你能否提供给我们更多的细节。 – Searock 2011-01-10 15:46:56

+0

将位置重新放入运行文本框中解决了问题。我测试了这个,如果你创建了一个指向不存在的文件exe的任务,你会得到一个'无法启动的消息'。所以我不知道我是如何得到我得到的错误代码。 – 2011-01-10 19:33:45

回答

3

我个人不相信魔法:-)

  1. 仔细检查源代码 没有修改比较工作 版本。
  2. 你确定该程序是否执行完毕?可能是一些与权限相关的问题(用户从中执行程序等等)。
  3. (如果#2通过)请尝试调试以查看导致问题的原因。
17

0xe0434f4d退出码非常有意义。这是一个托管异常的本地异常代码。换句话说,当应用程序由任务管理器运行时,您的应用程序会发生未处理的异常。我可以猜出原因,但这是毫无意义的。找出你自己,为AppDomain.CurrentDomain.UnhandledException编写一个事件处理程序,并记录e.ExceptionObject.ToString()的值。这给了你异常消息和堆栈跟踪,几乎总是足够好,以找出它为什么是轰炸。

0

我会检查看看哪个用户正在运行计划任务。它可能是用一个密码已过期的帐户运行的(正如你所说的那样,它以前一直在运行),并且要求改变它。

1

其实,这个问题是由权限造成的。作为计划任务,作业不具有某些文件夹和文件的权限。

0

我注意到Windows 2000和Windows XP上某些计划任务的一件事情是,每次机器重新启动时,我们都必须在某些任务上重新输入密码。其他人在没有它的情况下继续工作,而我从未发现其中的差异。