У меня есть веб-приложение и отдельное консольное приложение в одном решении.Консольный проект заключается в отправке напоминаний по электронной почте клиентам.Приложение напоминания также использует метод отправки электронной почты через веб-приложение.Поскольку некоторые электронные письма не доставляются клиентам, я попытался добавить файл журнала для исключений.Чтобы указать путь к текстовому файлу, я использовал путь к карте сервера, как показано ниже.
string filePath = System.Web.HttpContext.Current.Server.MapPath(@"~/EmailError.txt");
, что дает исключение для консольного приложения при его запуске.Я сделал ошибку, используя путь к карте сервера, который не может использоваться для консольного приложения (так как не имеет HttpContext).
Но мне нужно записать эти исключения в две отдельные папки: один идентификатор для веб-приложения и другой для консольного приложения.Так как я использую общий метод для отправки обоих типов писем.Я только что добавил лог в блок catch.
Было бы здорово, если бы я мог написать этот файл в соответствующих размещенных областях, как один в папке веб-приложения, а другой - в папке консольного приложения.Какой лучший подход я могу использовать для этого.
текущий код журнала ниже
catch (Exception ex)
{
email.IsSent = 0;
string filePath = System.Web.HttpContext.Current.Server.MapPath(@"~/EmailError.txt");
using (StreamWriter writer = new StreamWriter(filePath, true))
{
writer.WriteLine("Message :" + ex.Message + "<br/>" +
Environment.NewLine + "StackTrace :" + ex.StackTrace + "" +
Environment.NewLine + "Date :" + DateTime.Now.ToString()
);
writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine);
}
}
Заранее спасибо.