在外部停止Webapi中长时间运行的进程

时间:2018-09-13 09:28:47

标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api asp.net-web-api2

我正在使用webclient代码执行动作结果LongRunningProcess,还是要在外部停止进程执行,而不是在iis中停止执行?

 public IHttpActionResult LongRunningProcess()
        {
            for (int i = 0; i < 5000000; i++)
            {
                Thread.Sleep(1000);
            }
            return Json("Completed");
        }



 using (WebClient wc = new WebClient())
                {
  string myParameters = "";
  wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
  string HtmlResult =await wc.UploadStringTaskAsync("http://...../LongRunningProcess", myParameters);
                }

1 个答案:

答案 0 :(得分:0)

LongRunningProcess将需要合作以允许其停止。作为如何执行此操作的示例,以下解决方案可能对您很实用:

使LongRunningProcess定期检查基于数据库的标志。如果设置了该标志,请退出LongRunningProcess。然后,您可以执行另一项操作来设置该标志(可能只需按一下按钮)。