Из .Net Framework 3.5 нельзя вызвать vb6 dll. Не удалось получить фабрику класса COM для компонента с clsid из-за следующей ошибки: 800aea5f - PullRequest
2 голосов
/ 07 марта 2011

Я пытаюсь освободить Com dll (разработанный в VB6) от «Библиотечного проекта .Net Framework 3.5», и я получаю следующую ошибку:

Получение фабрики класса COM для компонента сОшибка CLSID {...} из-за следующей ошибки: 800aea5f.

На той же машине я пытаюсь отсоединить COM-DLL от VBScript, и она работает нормально.Кроме того, я попытался отменить регистрацию и перерегистрировать DLL без хороших результатов.

Теперь из приложения Windows. NET 3.5 Я могу отменить COM DLL, но это невозможно сделать из веб-приложения (также с и безолицетворять конфигурацию в web.config)

Свойства DCOM: Общие -> Аутентификация = Безопасность по умолчанию -> Все свойства = Личность по умолчанию -> Личность = Пользователь запуска

Есть предложения?

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Является ли эта машина сервером x64?Если это так, вы уверены, что ваша сборка .NET помечена как Force x86?Если он помечен как AnyCPU, и вы пытаетесь запустить его на компьютере с 64-разрядной версией, вы загрузите его как сборку с 64-разрядной версией, которая не сможет загрузить вашу VB6 Dll, поскольку вы можете работать только в 32-разрядном режиме ...

0 голосов
/ 08 марта 2011

Ошибка ссылки на права пользователя.

Дерево вызова: WebApplication -> WcfService -> .Net 3.5 dll -> COM dll

Даже если я установлюолицетворение локального пользователя в WebApplication web.config, WcfService использует пользователя, ассоциированного с пулом приложений VirtualDirectory, который является «NETWORK SERVICE».

Просто я меняю пользователя по умолчанию ApplicationPool на LocalSystem, чтобы вызов COM работал нормально

...