Я предполагаю, что происходит одна (или, возможно, все) из трех вещей (отсортированных по вероятности):
(1) Значение LocalService в ключе AppID не настроено, поэтому вместо этого оно запускается как обычная программа.
(2) Когда программа «srvany» (или эквивалентная) выполняет COM-сервер, она не передает необходимые параметры командной строки (например, «-automation») для регистрации объекта сервера. Большинство фреймворков регистрируют объекты классов автоматически. Зарегистрируйте командную строку, переданную на сервер, чтобы узнать, так ли это.
(3) Сервер не вызывает CoInitializeSecurity
(большинство фреймворков этого не делают) и не объявляет AccessPermissions . Проверьте это с помощью dcomcnfg
. Однако это должно было вызвать сбой вызова, а не запускать новый сервер.
Вы не говорите, под какой учетной записью работает служба; Вы пытались запустить его под той же учетной записью, что и интерактивный пользователь, и позволить ему взаимодействовать с рабочим столом (в качестве меры отладки - вы не должны делать это в рабочей среде!)?