我有一个第三方COM组件,它被称为Web服务。虽然这适用于我的开发机器,但我在生产服务器上得到了这个例外:
使用CLSID检索组件的COM类工厂 {6B7271AE-39C7-4C9E-B75F-6EDFCDBD623D}由于以下错误而失败: 80040154未注册类(HRESULT异常:0x80040154 (REGDB_E_CLASSNOTREG))。
服务器:Win 2008 R2 Enterprise,64位
IIS:版本7.5.7600.16385
我检查了什么
注册表项
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{6B7271AE-39C7-4C9E-B75F-6EDFCDBD623D}
存在于生产服务器上并指向正确的DLL(C:\ Program Files(x86)... \ xyz.DLL
(注册表中没有此GUID的其他CLSID条目)
第三方的测试程序在生产服务器上正常工作
(所以COM DLL工作正常)
我尝试了什么
(C#/ .Net)控制台应用程序可以在生产服务器上正确调用COM组件。
(所以.Net互操作和com注册都可以)
如果在我的开发机器上运行,Web服务可以调用COM组件。
(所以程序逻辑没问题)
Ich bin mit meinem Latein am Ende
(德语:我在我的智慧结束时)
答案 0 :(得分:0)
如上所述:web service with com 从Peter Hahndorf那里得到的答案非常简单:
IIS应用程序池设置Enable 32 Bit Applications
必须为true。
(IIS->应用程序池 - >设置应用程序池默认值)
然后,Web服务可以访问COM组件。