Ошибка IClassFactory при создании COM-объекта с поздней привязкой из ASP.NET - PullRequest
0 голосов
/ 27 апреля 2018

Я нахожусь в процессе настройки веб-сайта ASP.NET на Windows Server 2016. Веб-сайт также создает экземпляры COM-объектов, используя следующий код C #:

    Type type = Type.GetTypeFromProgID(ProgID, Server, true);
    dynamic object = Activator.CreateInstance(type);

Однако программа выдает исключение в строку Activator.CreateInstance со следующей ошибкой:

Creating an instance of the COM component with CLSID {E2FB185E-F4D8-482A-B27B-A08BB4F9EAE9} from the IClassFactory failed due to the following error: 800a0005 Exception from HRESULT: 0x800A0005 (CTL_E_ILLEGALFUNCTIONCALL).

Я не получаю эту ошибку при установке на компьютере с Server 2012. Кроме того, я могу запускать этот код без ошибок на сервере 2016 года, если я запускаю его как приложение Windows под той же учетной записью, что и пул приложений.

У кого-нибудь есть предложения? Благодаря.

1 Ответ

0 голосов
/ 27 апреля 2018

Хорошо, проблема в COM-объекте, который был написан на VB6. Основной ошибкой было «Недопустимый вызов процедуры или аргумент». Ошибка произошла из-за отсутствия системной переменной среды, которая требуется приложению. Переменные были определены на уровне пользователя, но они не загружаются для пользователя, который использует пул приложений.

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

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