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

本文介绍了一种在Windows Server 2008 X64环境下,.NET程序调用32位COM组件失败的问题及解决方法。通过调整.NET程序的目标平台为X86,并使用特定路径注册组件,确保程序能够在64位系统中正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发短信接口时,需要调用一个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,然后重新统计项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值