【发布时间】:2015-03-20 09:01:31
【问题描述】:
我有一个第三方 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 interop 和 com 注册都可以)
如果在我的开发机器上运行,网络服务可以调用 COM 组件。
(所以程序逻辑没问题)
Ich bin mit meinem Latein am Ende
(德语为:我束手无策)
【问题讨论】:
-
您能确认您的应用程序池是 32 位的吗?在 AppPool 的高级设置中勾选
Enable 32-Bit Applications。 -
这就是解决方案!谢谢
标签: c# .net web-services iis-7 com