Выполнение службы Windows (* .exe) из веб-приложения Asp.net - PullRequest
0 голосов
/ 22 января 2019

Я создал Windows Service и установил файл .exe в моей системе.Я могу запустить эту службу из Service элемента управления в Windows 10.

Я использую ту же службу из веб-приложения ASP.NET.Служба запускается, но я хочу вызвать метод protected override void OnCustomCommand(int command) при вызове из веб-приложения.

Я получаю ошибку

An exception of type 'System.InvalidOperationException' occurred in System.ServiceProcess.dll but was not handled in user code

Additional information: Cannot control ServiceName service on computer '.'.

Код, написанный на веб-странице для вызова службы Windows, выглядит так:

            ServiceController sc = new ServiceController("ServiceName");
            if (sc.Status != ServiceControllerStatus.Running && sc.Status != ServiceControllerStatus.StopPending)
            {
                TimeSpan timeout = TimeSpan.FromMilliseconds(60000);
                sc.Start();
                sc.ExecuteCommand(CommandId);
                sc.WaitForStatus(ServiceControllerStatus.Running, timeout);
            }

Кто-нибудь может помочь выяснить причину этой проблемы?

1 Ответ

0 голосов
/ 22 января 2019

Код, выполняющий веб-страницу, не имеет прав администратора для управления службой на этом компьютере.

Вам необходимо настроить пул приложений для запуска под учетной записью администратора.это не может быть хорошей идеей с точки зрения безопасности.

Если вы не хотите запускать ваше веб-приложение с правами администратора, вы можете рассмотреть возможность размещения собственного слушателя в службе Windows, для которой требуется только имя пользователя / пароль или, возможно, вообще никакой аутентификации, потому что вы выбираете вариантэто доступно только для localhost.WCF может быть хорошим вариантом для этого или, может быть, ASP.NET, если вы более знакомы с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...