如何让VB6开发的COM+组件使用WCF中发起的事务?

DalyQiao 2014-07-03 09:20:35
我这边有个VB6开发的COM+组件,是支持事务的。
我开发了一个WCF服务,也是支持事务的,当客户端发起调用时,此服务会自动创建一个事务,在服务的方法中,
我对VB6的COM+组件发起调用,结果VB6组件创建了一个新事务,完全不受WCF 事务的控制。
经查阅资料,发现WCF的事务是不能跨线程的,如果要这么做,就得使用DependentTransaction,并向此对象传递到目标线程。
COM+组件肯定是在dllhost.exe中运行的,跨了进程了,当然不在同一个线程中,但我也无法向这个组件传递DependentTransaction.
我现在不知道该怎么处理了,难道让我再开发一个.net 版的Com+组件,然后在此组件中再去调用VB版的Com+组件?
求大神指点迷津呐..
...全文
211 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
DalyQiao 2014-07-05
  • 打赏
  • 举报
回复
唉,放了两天了,没人理我。 不过今天早上,我居然找到解决办法了,简单的要命,那就是使用 object saver = BYOT.CreateWithTransaction(Transaction.Current, Type.GetTypeFromProgID("K3BatchBillForPOS.Saver")); 来创建一个VB6开发的 com+组件,这样WCF环境事务就可以传播到COM+上了。 结贴了,好想给自己加100分。

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧