Ошибка COM dll при попытке из IIS - PullRequest
2 голосов
/ 19 января 2010

У меня есть приложение ASP.NET 3.5, в котором я использую элемент управления ActiveX.Когда я пытаюсь запустить сайт из Visual Studio 2008, используя встроенный веб-сервер, он работает как чудо.

Когда я публикую тот же код в IIS, я получаю следующую ошибку:

Retrieving the COM class factory for component with CLSID {ADAACEC8-D9F2-4E05-A5F3-D29E5C9C82F9} failed due to the following error: 80040154. 

Как я могу исправить эту проблему ??

Ответы [ 4 ]

1 голос
/ 21 января 2010

Значение HRESULT в сообщении об ошибке (80040154) обычно означает «Класс не зарегистрирован».

Попробуйте перерегистрировать компонент:

regsvr32.exe MyActiveX.dll /u
regsvr32.exe MyActiveX.dll
1 голос
/ 23 января 2010

может быть по нескольким причинам. http://support.microsoft.com/kb/257757 перечислил некоторые из них. В дополнение к проблемам, упомянутым в статье, может быть некоторая проблема с загрузкой DLL, например, COM DLL может не поддерживать архитектуру ЦП пула приложений или одна из его зависимостей не найдена или недоступна.

0 голосов
/ 23 января 2010

Если исходить из того, что сказали Кев и Шэн Цзян 蒋 晟, похоже, что COM-компонент не зарегистрирован должным образом или имеет проблему с разрядностью.

DLL-библиотека activex, написанная на C ++ / скомпилирована специально для 32 или 64-битных / или использует DLL, которые являются конкретно 32 или 64-битными?

Если DLL ActiveX может выполняться в процессе x86 или x64, то он может быть зарегистрирован неправильно.

  • Если IIS работает как процесс x64, зарегистрируйте компонент COM с помощью C:\Windows\system32\regsvr32.exe.
  • Если IIS работает с компонентом в x86 / 32-битных рабочих процессах, попробуйте зарегистрировать его с C:\Windows\syswow64\regsvr32.exe
0 голосов
/ 19 января 2010

Просто предположение. Вы можете добавить к себе файл web.config

<identity impersonate="true" userName="Domain\MyUsername" password="MyPassword"/>

Однажды у меня возникла похожая проблема, и это решило ее.

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