控制器动作中的长时间运行方法 - MVC

now*_*ed. 3 .net c# asp.net-mvc asp.net-web-api asp.net-web-api2

我有一个类似于以下的方法 WebAPI - MVC

public IActionResult Post(Model model)
{
      ALongRunningMethod();
      return Ok();
}
Run Code Online (Sandbox Code Playgroud)

我有两个选择.

  1. 等待方法完成.但是,如果太久了呢?API超时了吗?
  2. 使用Tasks但是返回在单独的线程中运行它Ok (200 HTTP Code) immediately?如果在长时间运行的方法中出现一些异常怎么办?

完全糊涂了.在这种情况下我该怎么办?

ken*_*n2k 5

从.Net 4.5.2开始,您现在必须QueueBackgroundWorkItem处理ASP.Net中的长时间运行操作.