2

在 WCF 中,我使用同步调用。

在响应中,连接消失了。因为发件人没问题,他得到了一些异常并且可以回滚他的动作。但是接收器是怎么回事。他成功地采取了行动 - 关于网络电话 - 但他不知道发送者的事情,那个接收者使他的工作不太好[因为异常]。接收器是否有可能检测到响应中的错误?

我需要一种模式来确保双方都正确了解服务调用的状态。(背景是两个系统都有状态机,其中一个的更改也必须在另一个中实现,或者如果其中一个发生错误 - 听起来像分布式事务)

4

1 回答 1

2

您应该考虑在分布式事务中加入所有服务操作。

这将确保您在操作失败时,跨服务边界回滚事务。因此,如果您在客户端回滚事务,它也会在服务器上自动回滚(反之亦然)。

创业文章:

  1. WCF 事务传播。
  2. 代码项目示例。

虽然它看起来很重要,但值得付出努力。它将大大简化您的错误处理逻辑。

注意:由于 WCF 事务实际上是本机分布式事务(由 MSDTC 管理),因此您将获得额外收益。事务将(可选)传播到 SQL Server(如果您使用一个),并且所有数据库操作都将与您的服务操作在同一个事务中。

于 2012-06-26T07:07:04.830 回答