У меня есть консольное приложение C#, которое выполняется в качестве запланированной задачи в планировщике задач Windows. Это консольное приложение записывает в файл журнала, который при запуске в режиме отладки создает и записывает в файл в самой папке приложения. Однако, когда он запускается в планировщике задач, он выдает сообщение об отказе в доступе, поскольку он пытается записать в тот же файл журнала, но по какой-то причине он пытается записать его в папку windows \ system32. Почему это происходит? И как я исправлю это?File.AppendText пытается записать неправильное расположение
Вот фрагмент кода, который присваивает StreamWriter в файл журнала:
static void Main(string[] args)
{
using (_swrtr = File.AppendText("gapi_gen_log.txt"))
{
_swrtr.Write("\r\n");
_swrtr.Write("\r\nGOOGLE CALENDAR:");
_swrtr.Write("\r\n\tDate Time - " + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString());
start();
}
}
Я тоже попробовал, но это не сработало:
string dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
using (_swrtr = File.AppendText(dir + "gapi_gen_log.txt"))
{
_swrtr.Write("\r\n");
_swrtr.Write("\r\nGOOGLE CALENDAR:");
_swrtr.Write("\r\n\tDate Time - " + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString());
start();
}
Поскольку он работает с планировщиком задач Windows, и вы указываете относительный путь. –
Вопрос в том, какой целевой путь вы ожидаете вообще? Используйте абсолютный путь к каталогу, например 'D: \ Google-Calendar \ Logs \ gapi_gen_log.txt'. –
И ... что такое 'start()' do ... Утилизация блокировки в файле – Nico