Права службы Windows для записи в файл журнала - PullRequest
2 голосов
/ 23 сентября 2011

Я создал службу Windows, используя C #, которая записывает журналы (с NLog ) в C:\ProgramData.
Когда я отлаживаю службу (в моем Windows 7) (используя код, написанный выше), файл журнала правильно создан и записи журнала правильно записаны.Но когда я устанавливаю службу на моем сервере, который работает на Windows server 2008 ( x86 ), файл журнала не создается (я также зарегистрировался в C:\Windows\System32\, там ничего нет).

Я подозреваю, что это проблема авторизации, так как я могу узнать, какие права использует мой сервис?

PS: Я установил свой сервис с помощью командной строки C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\PathToMyService\MyService.exe с правами администратора.

Ответы [ 2 ]

5 голосов
/ 23 сентября 2011

Запустите services.msc, найдите свой сервис, щелкните правой кнопкой мыши и выберите Properties. Перейдите на вкладку Log On, чтобы узнать, под какой учетной записью работает ваша служба.

Что касается вашей проблемы, по умолчанию я думаю, что большинство служб работают под Local System Account, который, как я предполагаю, имеет разрешения на запись в каталог C:\ProgramData. Вы убедились, что файл nlog.config развернут вместе с вашим сервисом?

1 голос
/ 23 сентября 2011

Вы должны увидеть свой сервис в панели управления windows fpr services.В контекстном меню вы можете увидеть пользователя, который запускает ваш сервис.Вы даже можете сменить пользователя, на котором там работает ваша служба.

Вы должны предоставить этому пользователю право на запись в каталог журналов.

...