首页 > 解决方案 > 删除 TransactionScopeRequired = true

问题描述

我有一个操作合同,在 Windows 服务上,它有一个属性

[OperationBehavior(TransactionScopeRequired = true)]

我想摆脱这个属性。原因 :

将服务容器化。和容器化的应用程序不支持 MSDTC ,这就是属性的目的!

这样做有什么影响?我可以确认操作合同中的代码插入到单个数据库中。没有触发事件,但是我不确定是否存在使用服务的事务。

我能得到一些建议吗?

标签: wcfattributestransactionscopeoperation-contract

解决方案


您的服务需要交易。

只有您自己知道这是否有必要,我们无法检查您的服务和数据库来检查。

请注意,这不仅可以启用本地事务,而且-取决于绑定-还可以启用分布式事务请参阅此处了解详细信息

您的新系统似乎不支持这一点(MSDTC 是 MS 的分布式事务控制器)。同样,当您转移到该系统时,这是否是一个问题,我们无法找到。您将必须查看系统架构,看看这是否是“仅仅因为”包含在内并且可以在不替换的情况下删除,或者它是否是您需要保留的系统的关键功能。


推荐阅读