У меня есть служба Windows, созданная с использованием меню "new ... c # service" в VS 2010. В конструкторе у меня есть:
TextWriterTraceListener tr1 = new TextWriterTraceListener( System.IO.File.CreateText("d:\\output\\test.log"));
Trace.Listeners.Add(tr1);
Trace.WriteLine("Created");
Настройка службы для запуска в учетных записях LocalService или LocalSystem(WinXP) Я получаю файл, созданный при запуске службы, но он всегда пуст.Добавление вызова Flush () к деструктору не помогает.У меня больше вызовов трассировки в методах OnStart / OnStop / OnPause / OnContinue.
(редактировать) У меня включена трассировка и отладка в проекте - выходной файл трассировки равен создается, просто пусто.
Служба извлекает записи из базы данных и записывает файлы на диск для системы обмена сообщениями, с которой нам приходится взаимодействовать.Таким образом, проблема с файлом журнала - это только первый случай более широкой проблемы - мне нужно иметь возможность писать в выбранный пользователем каталог сообщений.
Это похоже на симптомы в другой вопрос но также я получаю проблему как LocalSystem (которая, по моему мнению, имела слишком много разрешений, поэтому устарела).
- Что я делаю неправильно с вызовами трассировки?(почему файл создается, но ничего не записывается в него?)
- Если я хочу, чтобы моя служба работала в учетной записи LocalService, есть ли какой-нибудь способ заставить установщик дать ему разрешение на запись в папку / поддерево?
- Или я должен запускать службу как LocalSystem?
- Является ли эта повторная реализация [Debug.Launch / EnsureWriter] [2] разумным решением?Я более склонен говорить «почему писатель нулевой», чем вставлять код из другого места, как это.
спасибо за любую помощь