计划任务抛出一个错误
问题描述:
我已经制定程序捕获数据从数据库,并通过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
任何人都可以告诉我这是什么原因
答
因为你正在指定一个模板的相对路径。当任务通过任务计划程序运行时,其当前目录设置为启动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");
这是否文件中存在?如果不是这就是错误的原因。如果它甚至不应该在那里寻找,那么你将不得不告诉我们为什么你认为这可能与一些代码示例...即告诉我们你认为它应该在哪里看,以及代码告诉我们为什么它应该在那里看。 – Chris 2014-12-05 10:58:37