在 long-运行 过程中频繁刷新网页

Frequently refreshing web page during long-running process

我一直在寻找我的问题,可能我想出的最好的是另一个 Stack Overflow 问题:How should I perform a long-running task in ASP.NET 4?

我处于类似的境地,因为我想了解我的选择是什么,但我觉得我对 MVC 的了解不够具体,无法得出一个观点。我使用的是 MVC 5,但使用的是 4.8 框架,而且我注意到,自从提出这个问题以来,诸如 SignalR 之类的技术已经可用。我想知道是否有经验的 MVC'ers 可以给我一个看法?

我也有一个很长的 运行 过程。更具体地说,用户正在导入文件。该文件是分隔的,因此导入是逐行进行的。该文件可能有数千行长。每行将在几分之一秒内被解析和导入,但整个操作可能需要几分钟。

我并不是特别需要异步行为,但由于整个过程的长度,我想定期向用户更新进度。我想知道我有哪些选择?

我有一个模糊的回忆,我可能在 20 多年前看过这个问题(经典 ASP),并通过定期刷新解决了它,将更多的页面发送到客户端每隔几秒钟,但我现在也尝试使用 _Layout 页面,所以我已经将页面发回了。所以我认为我没有那个选择,即使假设这样的机制仍然存在。最近,但还是在不久前,我可能使用 javascript 进行投票,但我现在阅读的所有内容似乎都指向我不确定我是否完全理解的新技术。

我只是想知道如何解决这个问题?

我不会在 Web 服务器上执行任何文件解析,尤其是当它有数千行长时。我会将其委托给各种后台服务,无论是云中的 Lambda 服务还是 Windows 服务或计划任务。然后,您可以从后台任务(无论是什么)调用您的 SignalR 集线器以更新导入进度。