【问题标题】:Transactions in WCFWCF 中的事务
【发布时间】:2013-05-23 11:46:21
【问题描述】:

我有一个 Windows 服务调用两个不同的 WCF 服务,这两个服务执行两个不同的操作,需要在同一个事务下,这意味着两者都必须通过或都必须失败。

我在 Windows 服务中启动了一个事务,并故意使第二个 WCF 服务调用失败,但令我惊讶的是,这些操作并没有回滚。

我在这里做错了吗?

【问题讨论】:

  • 您可能想发布一些有关打开、提交和回滚事务的代码,因为没有我们将无法为您提供帮助。

标签: c# wcf


【解决方案1】:
  1. 您的 WCF 服务操作应使用 [TransactionFlow(TransactionFlowOption.Allowed)] 注释
  2. WCF 服务使用的绑定应该支持事务。例如; wcfHttpBinding
  3. 服务方法应该在事务中工作,即它应该用 [OperationBehavior(TransactionScopeRequired=true)] 注解

【讨论】:

  • 强制添加属性,即使我们从客户端传递事务
  • 是的,需要指定。
  • 您还应该添加以下内容:[OperationBehavior(TransactionScopeRequired=true]
  • 我已经通过 basicHttp 绑定公开了我的服务,是否支持事务。
  • 不,很遗憾它不会。只有某些绑定支持事务 - 绝对不支持 basicHttpBinding。
猜你喜欢
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多