IIS7 не может найти COM-объект как зарегистрированный Cassini, может, что мне не хватает? - PullRequest
0 голосов
/ 28 июля 2010

Я изменил свою Visual Studio 2010, чтобы использовать мой локальный IIS7 вместо Cassini для моей службы WCF. Когда я тестирую в режиме отладки в Cassini, у меня нет проблем с созданием Redemption.dll. Когда я переключаю Visual Studio в свойствах проекта, чтобы использовать виртуальный каталог IIS7, я начинаю отлаживать и проходить по моему коду и, наконец, снова пытаюсь создать экземпляр Redemption.dll и получаю эту ошибку ...

Получение фабрики классов COM для компонента с CLSID {741BEEFD-AEC0-4AFF-84AF-4F61D15F5526} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Я нашел путь, к которому я обращаюсь изнутри, делая ссылку в VS2010. Затем я удостоверился, что он был фактически зарегистрирован путем отмены регистрации и повторной регистрации. Затем я протестировал его в Cassini без проблем, вернувшись к запуску Visual Studio в IIS7, и получил ту же ошибку. Так что я уверен, что он зарегистрирован.

Я запустил AppPool по умолчанию для AppPoolIdentity, MyOwnAdminAccount, LocalSystem и, наконец, NetworkService. Ни одно из этих изменений не сделало видимого COM-объекта Redemption.dll, зарегистрированного при отладке под IIS7.

помогите пожалуйста

1 Ответ

1 голос
/ 28 июля 2010

Убедитесь, что ваш код работает как 32-битный - так как Redemption загружает MAPI in-proc, битность должна соответствовать битовой системе MAPI. А поскольку Redemption - это встроенная COM-библиотека, приложение хоста также должно быть 32-разрядным. 64-разрядная версия Redemption находится в стадии бета-тестирования, но 64-разрядная версия Outlook 2010 - единственный способ установить 64-разрядную версию MAPI.

...