代码改变世界

关于在COM+中使用子事务的尝试

2004-10-19 09:02  Yuanyi Wang  阅读(1068)  评论(0编辑  收藏  举报
 在最近的项目中由于需要对多个不同种类的数据库提交子事务,所以学习了一些关于在Windows 2003环境下使用COM+的开发示例。
        以下我列出一些在开发中需要注意的问题,这些问题困扰了我好长时间。
        
        1. 定义子事务的类时需要给类添加属性:[ Transaction( TransactionOption.Supported ) ]
            根事务需要添加属性:[Transaction(TransactionOption.Required)];
        2. 编写COM+组件最好自己编写版本号[assembly: AssemblyVersion("1.0.0.0")]
        3. COM+组件必须使用强名
        4. 在使用子事务时必须安装MSDTC;并在MSDTC安全设置中选中Network Administration; Network Transcations; Network Clients选项;并在组件角色中添加调用用户。(不使用子事务就可以,如果使用子事务不这么做就报错)
        5. 可以使用Type.GetTypeFromProgID()函数得到远程对象类型,在使用Activator.CreateInstance()函数创建实例。
        
        虽然费了一些周折,但是总体感觉在COM+中写这种程序还是比较方便的。