【发布时间】:2018-02-16 04:23:15
【问题描述】:
我正在开发一个分布式进程,该进程依赖于一些内部数据库操作以及一些第三方 API。如果在任何时候发生错误,我想利用事务范围功能回滚。
这是我的流程的工作原理。
用户注册流程
- 使用 Dapper ORM 填充我们正在插入到我的数据库中的基本信息。
- 填写的信息有一半被传递给第三方 API。
- 如果 API 调用成功,用户将通过支付网关 API 注册到我们的支付系统。
现在是我担心的情况。假设 #1 和 #2 成功完成,而在执行 #3 时由于任何原因失败。在这种情况下,事务范围会恢复 #1 和 #2 吗?我对#1 很确定,但它也会为#2 处理吗?如果不是,我可以在这种情况下实施的替代解决方案是什么。
【问题讨论】:
-
那么你在说什么样的 API 调用?图书馆电话或网络电话? WCF 支持具有某些传输的事务。 REST 不会
-
@MickyD 我想作为#3 对 Stripe 支付网关进行 REST API 调用。我只是希望该过程是防故障的,如果出于任何原因 Stripe API 返回错误 #1 和 #2 应该被还原。
标签: c# asp.net transactionscope