110,536
社区成员
发帖
与我相关
我的任务
分享
while(true)
{
using(SqlDataReader reader=...) //从A数据表读数据
{
while(reader.Read())
{
insert into b...; //1、把读出来的数据写到B数据表
delete from a ...; //2、删除A数据表数据
}
}
}
using System;
using System.EnterpriseServices;
using System.Data.SqlClient;
using System.Data.OracleClient;
namespace MyCom
{
[ Transaction(TransactionOption.Required) ]
public class MyCom : ServicedComponent
{
public MyCom() {}
public void ExecuteSQL()
{
try
{
... //向Oracle数据表中插入一条记录
... //从Sql数据表中删除相应的这条记录
ContextUtil.SetComplete();
}
catch(Exception e)
{
ContextUtil.SetAbort();
}
}
}
}
2、创建密钥:sn –k mycom.snk
3、修改AssemblyInfo.cs文件:[assembly:AssemblyKeyFile(“mycom.snk”)];密钥在同一个目录下面
4、编译生成mycom.dll
5、注册COM+组件:regsvcs mycom.dll
上面的操作都没有异常,在组件服务里的COM+应用程序里可以看到mycom组件,但是在客户端添加mycom的引用之后实例化MyCom对象:MyCom com=new Mycom();执行到这条语句的时候就报“CoCreateInstance返回了意外类型,应为MyCom类型,却返回了_SomeObject类型”。
于是我就把COM+应用程序里的mycom组件删掉,然后提示同样的异常“CoCreateInstance返回了意外类型,应为MyCom类型,却返回了_SomeObject类型”,估计是组件没有注册成功,不知道在哪里可以看到注册好的组件的GUID之类的,注册表里也没有。