如果使用winform 程序
这样做是OK的
Dim objWizard As Object
Set objWizard1 = CreateObject("BillExpImp.ClsBill")
objWizard1.ImpBill propstring, "C:\2.xls", 4, , , , 1
但是当把这写代码放在web services的方法里执行(会把2.xls的内容导入第三方系统,BillExpImp.dll是第三方系统提供的COM组件),没有报错,但是没有导入任何数据。
web services调用COM组件的方法要进行其他转换或者有其他方法可以做到吗?
------解决方案--------------------
需要用 dcomcnfg 给COM组件加 IIS 访问权限。
------解决方案--------------------
是进程内com还是进程外com(activex exe)。
------解决方案--------------------
古老的COM是需要注册才能调用的。而且当重新卸载和安装COM组件时,往往出现各种无法正常卸载和安装的问题。
.net组件的出现,很大程度上就是为了解决COM组件的“壳”问题。
了解一下 RegSvr32的使用。
------解决方案--------------------
Com组件注册,在net项目中add reference...添加对com组件的引用。
在web service中调用,可能有些权限问题,因为如果在IIS中host webservice.默认执行账户是NETWORK SERVICE(在win2003下).你需要给运行web service的账户对于COM的访问权限。