计划任务抛出一个错误

问题描述:

我已经制定程序捕获数据从数据库,并通过Email.Program没有任何错误,执行发送,同时通过manually.when运行安排我上任务调度它抛出一个错误计划任务抛出一个错误

Could not find file 'C:\Windows\system32\EmailTemplateMini.html'. 
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) at System.Net.WebClient.DownloadString(Uri address) at System.Net.WebClient.DownloadString(String address) at DataEditMailSvc.MailSvc.GenerateEmployeeStatusListMail(DateTime executeDateTime, Int32 isActive, String status, String headerStatus, String connectionString, String locationName) in d:\Work\Projects\Logiwiz\DataEditMailSvc\DataEditMailSvc\MailSvc.cs:line 123 

任何人都可以告诉我这是什么原因

+0

这是否文件中存在?如果不是这就是错误的原因。如果它甚至不应该在那里寻找,那么你将不得不告诉我们为什么你认为这可能与一些代码示例...即告诉我们你认为它应该在哪里看,以及代码告诉我们为什么它应该在那里看。 – Chris 2014-12-05 10:58:37

因为你正在指定一个模板的相对路径。当任务通过任务计划程序运行时,其当前目录设置为启动exe的可执行文件,显然是C:\Windows\system32

Get your executable's location构筑了一个绝对路径:

using System.IO; 
using System.Reflection; 

string appDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); 

string templatePath = Path.Combine(appDirectory, "EmailTemplateMini.html");