'80040154 Класс не зарегистрирован' с взаимодействием из ASP.NET - PullRequest
10 голосов
/ 29 февраля 2012

Я получаю следующую ошибку на компьютере с Windows XP Pro SP2 x64 под управлением IIS6:

System.Runtime.InteropServices.COMException: 
Retrieving the COM class factory for component with CLSID
{3C250CBD-6CC9-11D2-9457-00004B48467E} failed due to the following error:
80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Это происходит при попытке создать экземпляр объекта взаимодействия COM.

Как ни странно,это прекрасно работает из консольного приложения, работающего под той же учетной записью, что и пул приложений (пользователь в AD).Т.е. оба используют UserX, так что это не кажется очевидной проблемой с разрешениями.

У кого-нибудь еще было что-нибудь подобное?

Ответы [ 2 ]

19 голосов
/ 01 марта 2012

Убедитесь, что ваш пул приложений 32-битный (или поддерживает 32-битные приложения) или ваш COM-элемент управления поддерживает 64-битные приложения. Скорее всего, ваша собственная библиотека COM является 32-битной, а ваш пул по умолчанию работает на 64-битном компьютере, который не может загрузить 32-битную COM-библиотеку.

1 голос
/ 29 февраля 2012

если работает под управлением IIS, действительно ли он использует «UserX», или он использует «Гость», «ASP.NET» или «IWAM_USER» или подобную другую учетную запись.Кроме того, если он вызывается из IIS, вам может потребоваться проверить разрешения ... не только на уровне файлов, но и на уровне конфигурации COM компьютера.

В последний раз, когда мне приходилось сталкиваться с этим, я бывыполните

START -> RUN -> DCOMCNFG

или просто вызовите службы компонентов.

Затем разверните Службы компонентов -> Компьютеры -> Мой компьютер -> Конфигурация DCOM, а затемпрокрутите вниз до COM-объекта, который вы пытаетесь использовать.Щелкните правой кнопкой мыши на нем, и появится несколько абс ... Идентификация - это та, которую он будет запускать как ... вы можете переопределить это, чтобы указать конкретного пользователя, чтобы "обойти" предполагаемое "значение по умолчанию".ТОЛЬКО ДЛЯ ТЕСТИРОВАНИЯ, я бы настроил его с менее строгой учетной записью (опытный пользователь, не обязательно администратор, но попробуйте это в последнюю очередь), и посмотрите, поможет ли это.

Кроме того, на вкладке Безопасность естьесть варианты для того, кто может запускать / активировать, а кто может «получить к нему доступ».вам может понадобиться убедиться, что ваш аккаунт действителен в этом.

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