- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图了解 WCF 事务,但在一个概念上苦苦挣扎。
的行为有何不同TransactionFlow(TransactionFlowOption.Mandatory)
和
OperationBehavior(TransactionScopeRequired = true)
据我从文档中可以看出,它们是实现同一件事的两种方式,但我无法真正弄明白。
干杯,
斯蒂芬
最佳答案
当方法需要事务作用域时,WCF 将创建一个事务来执行该方法的逻辑。事务流允许您链接事务,这样需要事务的多个服务方法都可以加入到一个事务中,而不是单独的事务。
考虑以下简单设置:
[OperationBehavior(TransactionScopeRequired = true)]
public void ServiceMethod1()
{
// Executes ServiceMethod2 and ServiceMethod3
}
[OperationBehavior(TransactionScopeRequired = true)]
[TransactionFlow(TransactionFlowOption.Mandatory)]
public void ServiceMethod2()
[OperationBehavior(TransactionScopeRequired = true)]
[TransactionFlow(TransactionFlowOption.Mandatory)]
public void ServiceMethod3()
ServiceMethod1 需要一个事务,因此 WCF 启动一个事务,然后调用 ServiceMethod2 和 ServiceMethod3。尽管这些服务也需要交易,但它们是流动的。因此,它们没有启动新事务,而是采用了由 ServiceMethod1 创建的相同事务。如果在此过程中出现任何故障或事务未提交,则整个链都会回滚。如果事务没有流动,每个方法都会启动一个事务,该事务独立执行并且不会影响其他被调用的方法。
关于wcf - TransactionFlow(TransactionFlowOption.Mandatory) OperationBehavior(TransactionScopeRequired = true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440494/
目前,对于所有 wcf 操作,我必须将 OperationBehavior 属性(用于模拟)放在每个方法的顶部。 [OperationBehavior(Impersonation = Imperson
我有一个自定义的 OperationBehavior。我想一次将它应用于所有操作。遗憾的是,OperationBehaviors 无法针对整个服务或在 web.config 中进行配置。 在测试应用程
我试图了解 WCF 事务,但在一个概念上苦苦挣扎。 的行为有何不同 TransactionFlow(TransactionFlowOption.Mandatory) 和 OperationBehavi
我是一名优秀的程序员,十分优秀!