Ошибка: получение фабрики класса COM для компонента с CLSID {0006F03A-0000-0000-C000-000000000046} - PullRequest
0 голосов
/ 20 декабря 2018

Я создал службу Windows в .Net 4.5. Служба написана для открытия клиента Outlook.Код написан правильно, так как я работал на локальном хосте.Но при запуске с сервера IIS сервер выдает следующую ошибку в следующей строке кода:

Ошибка при получении фабрики классов COM для компонента с CLSID {0006F03A-0000-0000-C000-000000000046}}из-за следующей ошибки: 0x80040154 Класс не зарегистрирован

Я попробовал следующие решения:

IIS Server > Advanced Settings > Enable 32 Bit APP = true & Identity=Windows

Большое спасибо

1 Ответ

0 голосов
/ 20 декабря 2018

IIS работает в режиме с низкими привилегиями, я считаю, что это NETWORK SERVICE.Эта учетная запись сильно ограничена от использования связанных с клиентом объектов COM, и клиент Outlook зарегистрирован под соответствующей учетной записью пользователя.Технически, вы изменяете (конфигурация COM) [https://docs.microsoft.com/en-us/windows/desktop/com/hkey-local-machine-software-microsoft-ole],, но не должны этого делать.

Объекты Office, включая Outlook, требуют сеанс зарегистрированного пользователя.В частности, для Outlook требуется зарегистрированный пользователь, у которого также есть зарегистрированный профиль Outlook, и лицензия Exchange (если применимо).

В вашем случае, когда вы запускаете его с локального хоста, у вас есть такой сеанс - ваш.Когда вы запускаете его на IIS, этот сеанс недоступен.

Что вы хотите сделать, если официально не поддерживается и очень не рекомендуется .

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