如何从winform调用rest api,关闭计算机,调用仍然存活

本文关键字:调用 计算机 winform rest api | 更新日期: 2023-09-27 18:18:45

我有以下结构:

  • c# Rest Api (api.com/DoSomethingLazy/)(这需要大约10分钟)

  • Winform

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

是否可以关闭计算机和api方法继续在服务器上运行?异步方法?尚?

如何从winform调用rest api,关闭计算机,调用仍然存活

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

你剩下的选项是:

  1. 使用外部服务-在机器上有第二个程序作为服务运行,您的IIS站点与服务通信,服务是长时间运行的操作。
  2. 使用WebJobs来排队工作-这只适用于Azure站点,除非你运行WebJob服务(但你只是在做选项#1)。
  3. 使用类似WebJobs的第三方库-我个人喜欢Hangfire

所有这些解决方案都是服务器端选项,WinForm应用程序在客户端上运行并不重要,也不能解决问题。客户端无法解决此问题。