Использование локальной системы и сетевых ресурсов из одной службы Windows - PullRequest
0 голосов
/ 08 мая 2020

Я создал службу в C#, в которой я выполняю две задачи.

Задача-1: Извлечение Windows Журналов событий.

Задача-2: Отправка желаемого log (если есть) в базу данных, которая находится в другой системе.

Если я запускаю эту службу под учетной записью LocalSystem, она успешно выполняет Задачу-1, потому что ее система связана, но не Задача-2, потому что учетная запись LocalSystem не выполняет иметь доступ к сети.

Если я запускаю эту службу под учетной записью NetworkService для доступа к базе данных на другом компьютере, она не выполняет Задачу-1, поскольку учетная запись NetworkService имеет ограниченный доступ к системным ресурсам. Из-за этого невозможно извлечь Windows журналы событий.

Я знаю, что мой код правильный, потому что я протестировал весь код в консольном приложении, и он правильно выполняет обе задачи.

Мне нужно решение, с помощью которого я могу выполнять обе Задачи через Службу.

1 Ответ

0 голосов
/ 08 мая 2020

«Если я запустил эту Службу под учетной записью LocalSystem, она успешно выполнит Задачу-1, потому что она связана с Системой, но не Задачу-2, потому что Учетная запись LocalSystem не имеет доступа к Сети».

Это неправда. Учетная запись LocalSystem, насколько мне известно, имеет доступ ко всему в системе, включая возможность взаимодействия с сетью. Я могу говорить об этом из личного опыта, потому что у меня была служба Windows в проекте, над которым я работаю уже почти десять лет, и она постоянно взаимодействует с сетью. Ознакомьтесь с принятым ответом здесь для получения дополнительной информации.

Весьма вероятно, что возникает исключение, когда ваш код выполняется из службы Windows, но не возникает при запуске из Консольное приложение. Вы пробовали отладить свой сервис ? Вы проверили журнал событий Windows на наличие ошибок?

...