【问题标题】:Scheduled Task not triggering exe on windows Server 2008 R2计划任务未在 Windows Server 2008 R2 上触发 exe
【发布时间】:2012-07-08 17:25:46
【问题描述】:

我有一个控制台应用程序,其目标版本是 .Net Framework 3.5。当我尝试手动触发编译的 exe 时,程序执行并完美地完成了它的工作。但是使用任务计划程序时,exe根本不会被触发。

Task Sceduler 中的错误详情如下:

上次运行结果 0xE0434F4D

编辑:

事件日志如下,

Fault bucket , type 0
Event Name: CLR20r3
Response: Not available
Cab Id: 0

Problem signature:
P1: flvtomp4converter.exe
P2: 1.0.0.0
P3: 4ffa8abc
P4: mscorlib
P5: 2.0.0.0
P6: 4e1539fa
P7: 349e
P8: 119
P9: System.IO.DirectoryNotFound
P10: 

这里发生了什么?

【问题讨论】:

  • 存在错误意味着它正在运行,但正在失败。这可能是一个权限问题(当运行它时,它可以做你能做的事情,当调度程序运行它时,它可能会以更受限制的用户身份运行) .将调试输出添加到您的程序以深入了解它。
  • windows 事件日志说什么?可能有一个.net 异常隐藏在某处。这将比错误代码更有用。
  • 你应该(或者你做过吗?)尝试用谷歌搜索“上次运行结果 0xE0434F4D”,你会发现,this
  • Spender:我已经添加了事件日志信息。如果它是一个异常,那为什么当我手动运行 exe 时应用程序会毫无问题地运行?

标签: c# .net scheduled-tasks console-application windows-server-2008-r2


【解决方案1】:

欢迎来到 Windows 2008 家族的精彩世界。 这是关于您的应用程序计划在任务计划程序中运行的用户以及特定用户对您的应用程序处理所涉及的所有(!!!)文件夹的权限。 此外,您必须确保该用户授权在安全设置中运行批处理。 仅仅成为管理员组的成员已经不够了!

【讨论】:

    【解决方案2】:

    就我而言,这是因为我的控制台应用程序试图在 C:\Windows\System32 内创建一个 log.txt 文件,而任务调度程序无权在该文件夹内创建一个新文件。

    发生这种情况是因为我没有指定将日志文件放在何处的绝对文件名。


    让我用我的代码示例来解释一下:

    我在这个目录D:\somefolder\ 中有一个程序,.exe 目录是D:\somefolder\program.exe

    这是我的代码的快照(visual basic)

    错了:

    Dim logFileName As String = "log.txt"
    /*
         Create file based on logFileName directory 
    */ 
    
    • 如果我通过 Windows 资源管理器执行 .exe -> 它将创建一个目录为 D:\somefolder\log.txt 的日志文件(没问题)
    • 如果我通过任务调度程序执行.exe -> 它将创建一个目录为C:\Windows\System32\log.txt 的日志文件(这将留下上次运行结果0xE0434F4D

    正确:

    Dim logFileName As String = AppDomain.CurrentDomain.BaseDirectory + "/log.txt"
    /*
         Create file based on logFileName directory 
    */
    
    • 如果我通过 Windows 资源管理器执行 .exe -> 它将创建一个目录为 D:\somefolder\log.txt 的日志文件(没问题)

    • 如果我通过任务调度程序执行.exe -> 它将创建一个目录为D:\somefolder\log.txt 的日志文件(没问题)

    因此您需要指定一个绝对文件名来放置日志文件。在我的示例中,我使用AppDomain.CurrentDomain.BaseDirectory

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 2016-02-21
      • 2012-06-05
      • 1970-01-01
      • 2014-06-21
      • 2011-06-04
      相关资源
      最近更新 更多