如何从winform调用rest api,关闭计算机并且呼叫还活着?

时间:2015-10-22 12:07:41

标签: c# winforms api rest

我有以下结构:

  • 在c#中休息Api(api.com/DoSomethingLazy/)(这需要大约10分钟)

  • Winform的

    private void Form1_Load(object sender, EventArgs e)
    {
        // Call rest api method 
    }
    

可以关闭计算机和api方法继续在服务器上运行吗? 异步方法?的WebSockets?

1 个答案:

答案 0 :(得分:0)

因为你的任务需要10分钟来完成一些" Easy"排队后台工作的方法(使用QueueBackgroundWorkItem)无法正常工作,因为它们不会使IIS保持足够长的时间(默认时间限制为90秒)。

您剩下的选项是:

  1. 使用外部服务 - 拥有在计算机上作为服务运行的第二个程序,您的IIS站点与服务进行通信,服务是长时间运行的操作。
  2. 使用WebJobs排队工作 - 这仅适用于Azure网站,除非您运行WebJob服务(但之后您只是选择#1)。
  3. 使用像WebJobs一样的第三方库 - 我个人喜欢Hangfire
  4. 所有这些解决方案都是服务器端选项,在客户端上运行的WinForm应用无关紧要,无法解决问题。此问题没有客户端修复。