【发布时间】:2009-12-20 09:03:25
【问题描述】:
我刚刚阅读了a fantastic article 关于 WCF 事务和流程的信息。几乎只给我留下了一个未回答的问题:
我有一个单个项目,其中定义了两种服务方法:
ServiceA.svc
[OperationBehavior(TransactionScopeRequired = true)]
OperationA()
ServiceB.svc
[OperationBehavior(TransactionScopeRequired = true)]
OperationB()
OperationA()需要拨打OperationB()。
我可以很容易地从ServiceA 中说出new ServiceB().OperationB(...)(记住我说过它们在同一台服务器上运行的同一个网络项目中。
起初我以为我会这样做,但我不确定交易是否会全部搞砸 - 特别是如果两个操作之间的交易合同不同。显然,如果我从OperationB 中访问Transaction.Current,那么它将存在,但如果这两个操作有不同的合同(如参考文章中所述),则不会遵循规则。
ServiceA.OperationA() 调用ServiceB.OperationB() 的正确方法是什么?
(很好奇当一个操作调用同一个类中的另一个操作时如何做到这一点,但这可能更容易用谷歌搜索)
【问题讨论】:
标签: wcf transactions