[转]在Windows Server 2008 X64中通过.NET程序调用32位com组件

原文链接

 

原文:

  在开发短信接口时,需要调用一个com组件,在本机测试成功。可是部署到Windows Server 2008 X64的服务器上却出现下面的错误:

  Retrieving the COM class factory for component with CLSID {79AD7B73-C515-40B4-8B02-CB0F5FA5A1A} failed due to the following error: 80070005

  部署时,直接在命令行中通过regsvr32注册com组件。

  被这个问题折腾了几个小时,终于找到原因和解决方法。

  服务器用的是64-bit的系统,而.NET程序在本机编译时,目标平始选的是Any CPU,这样.NET程序在服务器上会运行于64位环境。

  在相关资料中查到, 在64bit的环境中无法访问32位的com组件。

  所以只要让.NET程序以32位的方式运行,就能解决问题。

  解决方法:

  1、通过C:\Windows\SysWOW64\regsvr32注册组件。

  2、在Visual Studio中,将编译的目标平台(Platform target)设置为:X86,然后重新统计项目。

 

对我的帮助:

在用vs2005开发的程序调用了vc6.0开发的com组件时,在win7 64位操作系统上,com组件可以注册成功,但程序无法成功调用com组件,重新设置了编译的目标平台为x86后,程序即可成功调用com组件了

 

posted on 2010-11-12 08:55  onlyfew  阅读(331)  评论(0编辑  收藏  举报

导航