c# - 在 ASP.NET Web API 中使用事务

标签 c# asp.net-mvc-3 asp.net-web-api transactions

我在 Web API 中对 Controller 进行了两次不同的调用。假设第一个路线是 http://localhost/1第二个 http://localhost/2

我的目标是做一些类似交易的事情。在第一次通话中,我想将数据发送到服务器。所以这就是我的第一个问题:如何在服务器上短期保存数据,而不是将其保存到数据库中?对此的最佳实践是什么?

在第二次通话中,我将发送验证码。如果代码没问题,那么我将使用客户端在之前的调用中发送的数据执行某些操作。

这对我来说听起来像是一笔交易。就像代码正常时提交或代码验证失败时回滚事务一样,但我不确定当您有两种不同的 POST 方法时是否可以在这种情况下使用事务。

有人可以帮我多思考一下吗?

最佳答案

不要在服务器中临时保存任何内容。这是一个不好的做法。

WebApi 是无状态的。因此,最好将所有详细信息保存在服务器中。

  1. 在第一次 POST 调用中,返回唯一的交易引用号(使用 SQL Server 保存此信息)

    例如发布到 http://localhost/requestVerificationNumber/ 返回GUID

  2. 在第二个 POST 调用中,通过将验证码与之前存储的唯一交易号进行匹配来交叉检查验证码。第二个 POST 调用负责发送该引用号。

    例如发布到 http://localhost/verifyCode/ 以及之前发送的GUID。 这种方法的优点是所有的事务都存储在Sql Server中,以后可以进行操作。

关于c# - 在 ASP.NET Web API 中使用事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29362046/

相关文章:

c# - 转换 bool 值?在 View 中 bool

javascript - 在部分 View 中插入 Javascript 函数值

asp.net-mvc-4 - 从 ASP.Net MVC 4 Web 应用程序使用 ASP.Net Web API

asp.net-mvc-3 - w3wp.exe 有内存限制吗?

c# - 与 Entity Framework 的多个一对多关系

c# - 同一对象被添加到对象列表中

c# - VS 2010 类图 - 可以删除按字母顺序排序吗?

c# - MVVMLight 和平台特定的服务实现

jquery - 隐藏 JSTree 中的特定节点

c# - System.Web.Mvc.HttpPostAttribute 与 System.Web.Http.HttpPostAttribute?