web-services - 如何实现网络场景下的交易?

标签 web-services transactions dynamics-crm-2011 distributed-transactions

我们的业务流程由多个 Web 服务调用组成,包括读取和写入。他们每个人都可能因某种原因而失败。但对于我们的流程来说,事务性至关重要吗?也就是说,如果在过程中间发生任何失败,我们希望它回滚之前的所有步骤。在网络场景下如何实现?谢谢。

最佳答案

创建一个名为 new_RemoteCommand 的“远程命令”实体。创建一个在 Create 的 Pre 步骤中注册的插件。将所有代码放入此插件中。插件中的所有 Web 服务调用都在主数据库事务内运行,因此如果其中一个失败,它们将全部回滚,整个 Create 将失败。

现在调用代码只需要创建一个 new_RemoteCommand,并且所有代码都应该在事务内执行。您甚至可以通过添加自定义字段将“参数”传递给您的插件。

希望有帮助!

关于web-services - 如何实现网络场景下的交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18456425/

相关文章:

web-services - RESTEasy 客户端代理抢占式基本身份验证

c# - 找不到匹配的 ExtType

c# - 单元测试 TransactionScope 的使用

java - 为什么 @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 不提交?

javascript - 在 CRM 2011 中获取功能区按钮的 ID

c# - 我已经使用 CrmSvcUtil 为 Dynamics CRM 2011 生成了早期绑定(bind)实体类 - 现在怎么办?

c# - Web 服务在第一次尝试时未连接

web-services - 有状态与无状态 Web 服务

nhibernate RollbackTransaction 以及为什么要在回滚后处理 session ?

ruby-on-rails - 使用 REST API 从 Dynamics CRM 导入数据