如何从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方法继续在服务器上运行?异步方法?尚?
因为你的任务需要10分钟来完成一些"简单"的方法来排队后台工作(使用QueueBackgroundWorkItem
)将无法工作,因为它们不会使IIS存活足够长的时间(它有一个默认的90秒的时间限制)。
你剩下的选项是:
- 使用外部服务-在机器上有第二个程序作为服务运行,您的IIS站点与服务通信,服务是长时间运行的操作。
- 使用WebJobs来排队工作-这只适用于Azure站点,除非你运行WebJob服务(但你只是在做选项#1)。
- 使用类似WebJobs的第三方库-我个人喜欢Hangfire
所有这些解决方案都是服务器端选项,WinForm应用程序在客户端上运行并不重要,也不能解决问题。客户端无法解决此问题。