Ant*_*unt 5 c# background-service progress-bar asp.net-core-2.1
我正在使用 Core 2.1 和后端到 SQL 服务器的实体框架将一个非常古老的 VB 遗留应用程序重写为基于浏览器的 C# ASP.Net 应用程序。
其中一些功能是长时间运行的任务。一个例子是地址地名录 CSV 文件的导入。这些文件的大小通常为 50-100Mb,需要解析。我编写了一个上传器和导入函数,它运行大约 15 分钟 - 其中大部分是数据库写入时间。
我试图找到一种运行导入过程的方法,以便它可以向客户端浏览器报告进度,理想情况下通过将菜单选项更改为进度条直到任务完成 - 因为 _layout.cshtml 位于每个页面上,它会让任何用户知道任务正在运行以及何时完成。
我查看了 IHostedServices 和 BackgroundService 函数,但找不到与我正在尝试做的事情相匹配的任何示例。我看过一篇关于 MVC5 的文章,它使用了 SignalR & Knockout(我不太熟悉),但它没有使用 Core 2+ 或更新的服务功能。
任何人都可以给我指出一个很好的 .Net Core > 2.0 这样的例子吗?
提前致谢。
对于长时间运行的过程,您可以使用广泛使用的Hangfire
文档中描述了通过 SignalR 进行进度跟踪:http://docs.hangfire.io/en/latest/background-processing/tracking-progress.html
它与.Net Core 2.1兼容。