2012-06-26 136 views
2

在WCF我使用同步调用。WCF - 在响应中检测到错误

在响应中,连接终止。对于发件人来说,这是好的,他会得到一些异常,并可以回滚他的行为。 但是接收器是什么。他对网络电话成功地采取了行动,但他不知道发件人的事情,接收方的工作不好(因为例外)。 接收器可能检测到响应中的错误吗?

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

+0

您可以使用故障合同通知客户端的故障类型。 –

回答

2

您应该考虑征用所有分布式事务中的服务操作。

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

启动文章:

  1. WCF Transaction Propagation.
  2. CodeProject sample.

虽然它似乎有大事来抓,这是非常值得的努力。它将大大简化您的错误处理逻辑。

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

+1

同意,如果存在依赖性,则使用交易来确保其采取全有或全无的方法。 – Chris