我已经创建了一个控制台应用程序,我已经测试并验证了本地计算机上的功能,它运行正常。当我在Production(live)Server上使用此应用程序创建调度程序时。我已在“ intpub / wwwroot / Utility / ”中粘贴了release文件夹。现在,当我运行代码时,它会抛出我的错误,即代码无法找到我需要在该过程中读取的文件。它正在“ Windows / System32 ”文件夹中搜索文件。我不知道为什么。因为还有一些其他调度程序也在同一个“Utility”文件夹中工作。从那里读文件。
这是我的代码:
static void Main(string[] args)
{
try
{
DateTime DateFrom = DateTime.Now;
DateTime DateTo = DateFrom.AddDays(-1);
string BrochureRequest = string.Empty;
string RequestEmail = string.Empty;
string RequestLocation = string.Empty;
StreamReader EmailList = new StreamReader("brochure_request_list_New.txt");
while (EmailList.Peek() >= 0)
{
BrochureRequest = EmailList.ReadLine();
if (BrochureRequest.IndexOf(",") > -1)
{
RequestEmail = BrochureRequest.Substring(0, BrochureRequest.IndexOf(","));
RequestLocation = BrochureRequest.Substring(BrochureRequest.IndexOf(",") + 1);
SendBrochureRequests(RequestEmail, "", DateTo, DateFrom, RequestLocation);
}
}
EmailList.Close();
}
catch (Exception AppError)
{
MailMessage ErrorMail = new MailMessage();
ErrorMail.From = new MailAddress(ConfigurationManager.AppSettings["FromEmailAddress"]);
ErrorMail.To.Add(ConfigurationManager.AppSettings["ErrorNotifyEmailAddress"]);
ErrorMail.Subject = "Automailer Error";
ErrorMail.Body = AppError.ToString();
SmtpClient SmtpMail = new SmtpClient();
SmtpMail.Send(ErrorMail);
}
}
“ brochure_request_list_New.txt ”是我正在谈论的文件。我不知道为什么会这样,请帮我纠正。我想在“实用程序”文件夹中使用此文件。
答案 0 :(得分:1)
我认为您应该更好地解释您的方案,但看起来您在服务器中有不同的“当前目录”。
当你打开StreamReader时,你有一个相对路径,它可能是相对于Environment.CurrentDirectory而被插入的。
我建议2个解决方案:
获取可执行文件目录并将其与文件名组合以获得完整路径(请参阅here)
假设您通过调度程序表示Windows任务计划程序,则可以在操作定义中设置起始目录: