无法使用 IIS 7 从 Web 服务调用 COM 组件
Can't call COM Component from Web Service with IIS 7
我有一个第三方 COM 组件,它被称为 web 服务。虽然这适用于我的开发机器,但我在生产服务器上遇到了这个异常:
Retrieving the COM class factory for component with CLSID
{6B7271AE-39C7-4C9E-B75F-6EDFCDBD623D} failed due to the following error:
80040154 Class not registered (Exception from HRESULT: 0x80040154
(REGDB_E_CLASSNOTREG)).
服务器:Win 2008 R2 企业版,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 注册是可以的)
如果 运行 在我的开发机器上,Web 服务可以调用 COM 组件。
(所以程序逻辑没问题)
Ich bin mit meinem Latein am Ende
(德语:我无计可施)
如此处所述:web service with com
Peter Hahndorf 的答案很简单:
IIS 应用程序池设置 Enable 32 Bit Applications
必须为真。
(IIS->应用程序池->设置应用程序池默认值)
然后web服务就可以访问COM组件了。
我有一个第三方 COM 组件,它被称为 web 服务。虽然这适用于我的开发机器,但我在生产服务器上遇到了这个异常:
Retrieving the COM class factory for component with CLSID {6B7271AE-39C7-4C9E-B75F-6EDFCDBD623D} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
服务器:Win 2008 R2 企业版,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 注册是可以的)
如果 运行 在我的开发机器上,Web 服务可以调用 COM 组件。
(所以程序逻辑没问题)
Ich bin mit meinem Latein am Ende
(德语:我无计可施)
如此处所述:web service with com Peter Hahndorf 的答案很简单:
IIS 应用程序池设置 Enable 32 Bit Applications
必须为真。
(IIS->应用程序池->设置应用程序池默认值)
然后web服务就可以访问COM组件了。