string _methodName = string.Empty;
string[] param;
string CRYPTODATA = string.Empty;
string inxml = string.Empty;
_methodName = "GETPSNINFO";
CRYPTODATA = @"?xml version='1.0' encoding='GB2312' standalone='yes'?>
< CRYPTINFO >
< G > G </ G >
< Y > Y </ Y >
< M > 签名文本 </ M >
< A > A </ A >
< B > B </ B >
< HASH > 加密的HASH </ HASH >
</ CRYPTINFO >
";
inxml = @"<?xml version='1.0' encoding='GB2312' standalone='yes'?>
< DATA >
< CARDTYPE > 卡类别 </ CARDTYPE >
< CARDDATA > 磁条数据 </ CARDDATA >
< SNO > 社会保障号 </ SNO >
< IPADDR > 终端机IP地址 </ IPADDR >
< PSAMNO > PASM卡号 </ PSAMNO >
< PASSWORD > 密码 </ PASSWORD >
< PAYTYPE > 支付类别 </ PAYTYPE >
< INSURETYPE > 保险类别 </ INSURETYPE >
< SPECILLNESSCODE > 特种病编码 </ SPECILLNESSCODE >
< GSRDBH > 工伤认定编号 </ GSRDBH >
< STARTDATE > 经办时间 </ STARTDATE >
</ DATA >
";
param = new string[2];
param[0] = CRYPTODATA;
param[1] = inxml;
System.Guid guid = new Guid("C89832ED-11E0-453B-915A-3AD7D2964277");
System.Type t = Type.GetTypeFromCLSID(guid, "192.168.1.98", true);
object COMobject = System.Activator.CreateInstance(t);
object obj = COMobject.GetType().InvokeMember(_methodName, System.Reflection.BindingFlags.InvokeMethod, null, COMobject, param);
guid用oleview可以看到.ip地址就是com+部署的机器上.
object COMobject = System.Activator.CreateInstance(t);
这段代码报错可能是com+服务器配置问题.
1.防火墙关掉
2.打开添加和删除程序 里面有一个添加组件.找到应用程序服务器>启用网络com+访问 和启用网络DTC访问这俩个勾上.就应该可以了.