Я создал стандартную службу Windows, которая использует учетную запись LocalSystem. Для файлов журнала я использую textwriter для записи в указанный файл в каталоге C: \ Users \ useraccount. Проблема заключается в том, что при работе в качестве службы в LocalSystem она вообще не хочет создавать или записывать в файл.C# Windows Service Textwriter
string dir = @"C:\Users\useraccount\log.txt";
StreamWriter sw = File.AppendText(dir);
Как вы можете видеть, каталог зашиты в нем не так ли конфликты базы каталогов видящие, как LocalSystem бы начать в System32 или что-то в этом роде. Разрешения в папке позволяют Системной учетной записи получить доступ к ней полностью (окна 7), так почему я не могу создать/записать в этот файл?
Спасибо за любой ввод!
Edit:
Видимо программа нить протоколирования работает как LocalSystem, а также, когда я действительно это нужно, чтобы работать в качестве обычного пользователя. Итак, как мне выполнить потоковый процесс из службы для запуска под локальной учетной записью пользователя, а не под LocalSystem.
Я использую Thread.new (process), где процесс является дополнительной программой. Программа процесса должна получать входные данные до того, как они что-либо пишут, и она не получает вход, потому что она находится в неправильной учетной записи. Как я могу это исправить?
Что вы хотите сказать, не можете создать файл? Вы получаете сообщение об ошибке или выполняете этот код без ошибок, но без результата файла? –
выполняется без ошибок, но файл не найден – Goober
Обратите внимание, что без вызова метода Close() в поток ничего не произойдет, поскольку поток буферизует все до тех пор, пока буфер не будет заполнен полностью или Close()/Flush() не будет вызван – codymanix