任务计划程序无法正确运行控制台.net程序

我的机器:Win7 32bit,.net 4

我有一个基于.net 4的控制台程序,生成3个excel文件并通过SMTP服务器逐一发送。

当我双击exe或运行在cmd,它运行正常,并发送这3个Excel文件3电子邮件。

但是当我把exe放在Task Scheduler中,然后点击“Run”。 只发送了第一封电子邮件,其他两封邮件无法发送。

任何想法?

要真正知道程序由任务计划程序运行时发生了什么,可以将Trace语句放在代码中的重要步骤,例如:

Trace.WriteLine("Start creating mail object"); 

 Trace.WriteLine(string.Format("Exception occured: {0}\r\n{1}", ex.Message, ex.StackTrace); 

不要忘记把一个Trace.WriteLine放到你的exception处理程序中,以便知道是否有错误发生。

您可以通过在.config文件中configuration监听器来控制这些语句的写入位置。

以下示例将名为myListenerEventLogTraceListener对象添加到Trace.Listeners集合中。 initializeData参数指定要传递给EventLogTraceListener(String)构造函数的事件日志源的名称。

 <configuration> <system.diagnostics> <trace autoflush="false" indentsize="4"> <listeners> <add name="myListener" type="System.Diagnostics.EventLogTraceListener" initializeData="TraceListenerLog" /> </listeners> </trace> </system.diagnostics> </configuration> 

您可以通过转到Start > eventvwr来打开EventViewer

希望这可以帮助你找出问题所在,因为在这一点上,这是任何人的猜测。

问题:编写.net C#控制台应用程序将文件从共享驱动器上传到SharePoint文档库。 以Service Acct身份login时,执行时未发现问题,文件传输到SP文档库中没有问题。 但是,通过任务计划程序执行遇到“system.io.directorynotfoundexception ….”错误。 另外请注意使用个人帐户我login在服务器上或通过执行使用我的个人帐户.exe的任务计划程序执行代码没有问题。

分析:当服务帐户。 被logging在映射的驱动器中的代码是可访问的。 但是,任务计划程序无法读取映射驱动器(即s:\ xxxxx Reports \)。

解决scheme:注意到所访问的文件来自EMC VNX Windows文件共享。 将引用文档位置的控制台应用程序代码更改为以下path\ server.com \ vnxcifs01 \ Saved_xxxx_Report_Outputs \ xxxxxxxxxxx计划报告。 在这个改变之后重buildexe文件,Task Scheduler像一个魅力一样工作。

我希望这有助于一个人在类似的环境工作。