Asp.net 在asp中安排后台作业的最佳方法

Asp.net 在asp中安排后台作业的最佳方法,asp.net,vb.net,Asp.net,Vb.net,我有一个asp网站,允许它的用户管理一些数据。然后,用户需要单击一个按钮,以便网站能够处理一些文件。问题是操作大约需要5分钟,我需要: 网站必须是响应性的。用户应与网站互动,并查看操作状态 无论是哪个用户启动了操作,在前一个操作完成(如队列)之前都不能启动一个操作 QueueBackgroundWorkItem的行为实际上与队列不同,因此无法查看操作的状态 我问的背景工作人员是不可能的 我应该制作一个windows服务来执行操作,并且网站通过WCF与之通信吗 我还希望避免使用第三方软件。我创建了

我有一个asp网站,允许它的用户管理一些数据。然后,用户需要单击一个按钮,以便网站能够处理一些文件。问题是操作大约需要5分钟,我需要:

  • 网站必须是响应性的。用户应与网站互动,并查看操作状态
  • 无论是哪个用户启动了操作,在前一个操作完成(如队列)之前都不能启动一个操作
  • QueueBackgroundWorkItem的行为实际上与队列不同,因此无法查看操作的状态

    我问的背景工作人员是不可能的

    我应该制作一个windows服务来执行操作,并且网站通过WCF与之通信吗


    我还希望避免使用第三方软件。

    我创建了一个方法,该方法在应用程序中启动,在新线程中启动,并具有无限循环。每10秒,它验证一个任务队列。任务是存储任务参数的类。我将每个任务发送给运行任务的方法

    任务处理方法将信息写入数据库中,以便我可以查看进度


    我不知道这是否是最好的实现,但它满足了我的要求,即拥有一个处理队列,用户可以添加、删除任务并查看进度。

    为什么您会说
    BackgroundWorker
    是不可能的?您可以有一个表示队列的列表和一个处理队列的线程。你可以在这里查看,他们有很多教程和背景作业示例:@Mederic:ProgressChanged方法不会更新内容。而且还喜欢避免使用第三方软件。(我编辑了这个问题)