Установка службы Windows как пользователь не удается - PullRequest
1 голос
/ 06 апреля 2011

Я занимаюсь разработкой службы Windows с использованием .Net Framework версии 3.5. Он должен вызвать веб-сервис на удаленной машине, и я столкнулся со странной проблемой установки.

Раньше я устанавливал его на своем компьютере как User (по умолчанию), и при запросе указывал мой логин и пароль, и все работало нормально. Затем, в какой-то момент, он перестал работать, и я узнал об установке его как LocalSystem, и это сработало нормально.

Теперь я пытаюсь вызвать удаленный веб-сервис и получаю сообщение об ошибке от WCF:

There was no endpoint listening at https://www.remote.com/webservice.asmx that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

По-видимому, это может быть вызвано тем, что служба работает как LocalSystem (у которой нет доступа к Интернету): Не было конечной точки, прослушивающей , которая могла бы принять сообщение. Это часто вызывается неверным адресом или действием SOAP

Итак, я попытался вернуться к установке службы как User и предоставлению своих учетных данных (на данный момент я должен отметить, что я являюсь администратором моей машины). Но это не работает, и сообщение об ошибке (и содержимое файла журнала InstallUtil) практически бесполезны:

Running a transacted installation.

Beginning the Install phase of the installation.
See the contents of the log file for the Service.exe assembly's progress.
The file is located at Service.InstallLog.

An exception occurred during the Install phase.
System.InvalidOperationException: An exception occurred in the OnAfterInstall event handler of System.ServiceProcess.ServiceInstaller.
The inner exception System.InvalidOperationException was thrown with the following error message: Service ServiceName was not found on computer '.'.
The inner exception System.ComponentModel.Win32Exception was thrown with the following error message: The specified service does not exist as an installed service.

The Rollback phase of the installation is beginning.
See the contents of the log file for the Service.exe assembly's progress.
The file is located at Service.InstallLog.

The Rollback phase completed successfully.

The transacted install has completed.

Насколько я могу судить, соответствующий бит заключается в том, что служба не была установлена. Нет больше информации! Любые идеи, почему служба может быть успешно установлена ​​как LocalSystem, но терпит неудачу при установке как User, кто является членом группы администраторов?

1 Ответ

1 голос
/ 06 апреля 2011

Попробуйте NetworkService пользователя. LocalService не разрешено иметь связи с внешним миром по соображениям безопасности.

Что касается причины, по которой вы не можете установить службу самостоятельно, это может быть связано с UAC. Я обнаружил, что установка служб невозможна, если UAC полностью не отключен, даже если вы являетесь администратором своей учетной записи. Это потому, что ваша учетная запись не имеет этой специальной привилегии. Я полагаю, что это можно исправить с помощью диспетчера групповой политики.

...