Windows Server 2008中COM对象的InvalidCastException

时间:2012-04-25 13:58:49

标签: c# windows iis com

我遇到一个站点问题,该站点与部署在Windows Server 2008(x64版本)上的IIS7上的C#服务进行通信。 该服务正在尝试从第三方DLL访问COM对象。当这样做时,抛出以下形式的异常:

System.InvalidCastException: Unable to cast COM object of type 'MyClass' to interface type 'TheirInterface'. 
This operation failed because the QueryInterface call on the COM component for the interface with IID '{88B11E8A-0B27-459C-BC28-A4D4113FD4AE}' failed due 
to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

我在许多其他使用Windows 7的计算机上托管了同一个站点,因此我认为该问题与操作系统(Windows Server 2008)有关。 有关我是否可以搜索此异常的解决方案的任何建议,或者是否应该在IIS上进行任何配置?

1 个答案:

答案 0 :(得分:2)

您需要将网站作为32位网站运行,或者使用针对x64平台编译的COM对象。换句话说,您的COM对象无法加载,因为它只支持由32位进程加载。