WCF SOAP Idempotent

时间:2011-07-21 14:10:33

标签: .net wcf integration messaging

我可能会在这里感到困惑,但我说我希望服务是幂等的。也就是说,多次接收相同的请求不会改变系统的状态。在断开连接的集成系统中接收消息时,这对我来说很有意义。例如,通过MSMQ接收消息并具有处理正在接收的消息的某种形式的服务。您希望服务处于一致状态,即使它收到10条重复消息。

我现在正在努力解决的问题是使用执行CRUD操作的标准WCF SOAP服务。如果是异步调用,幂等性问题是否才会生效?同性恋是一种同步的呼唤吗?看看CRUD操作,唯一不是幂等的是create。你能对WCF进行重复的创建调用吗?

由于

2 个答案:

答案 0 :(得分:0)

我想这取决于您在(在您的域中)定义的重复内容。一旦定义了,您就可以在创建记录之前运行检查。例如我有Person FirstNameLastName等... FirstName + LastName会识别出重复的人。

您希望服务收到哪些重复邮件?同一个客户“点击提交按钮两次”?或两个不同的客户试图同时更新记录?

答案 1 :(得分:0)

同步或异步无关紧要。想一想如果请求是进程但在收到响应之前连接丢失了。因此,您的客户端收到错误,但服务器已处理该请求。更新是幂等的,因为在最坏的情况下,您更新记录两次。