使用ASMX Webservice的web服务器后台进程

本文关键字:服务器 后台进程 web ASMX Webservice 使用 | 更新日期: 2023-09-27 18:16:05

我面临一个问题,我需要通过asmx webservice接收用户请求,对于每个请求,我需要:

1)向用户发送请求的Id。例如:"您的请求已被接收,id为####"。(id由DB生成,是一个自增列)

2)在不阻塞用户响应的情况下启动后台进程,这意味着webservice返回Id并在后台启动进程。

我明白也许我应该使用WCF,但我认为服务器无法运行它,但如果你能在这两种服务中告诉我这个问题的答案,那就更好了

我不知道如何做这个任务。我很感激你的帮助。

使用ASMX Webservice的web服务器后台进程

通常我通过定期启动控制台应用程序的计划任务来执行此操作。

ASMX web服务和调度的控制台应用程序之间的通信是通过数据库完成的,我在数据库中填充了一个工作项队列表。

使用这个(也许不是那个优雅的方法)我得到了以下好处:
    在ASP中绕过后台线程。NET(我真的不完全理解)
  • 使后台处理工作甚至正确,如果ASP。. NET应用程序正在重新启动

根据需要,计划任务可以按需要频繁运行,例如每5分钟运行一次或每天运行一次。

您可以使用MSMQ。创建一个队列来处理传入的请求,并创建一个服务来从队列中获取任务并处理它们。如果不了解你的具体情况,就很难提出"正确"的解决方案。

我只是运行一个后台任务(也许在你的global.asax),工作出一个队列的记录请求,拿起他们,并实际做他们。

您的.asmx方法将只是添加到这个队列(包括ID),因此可以在后台处理任务时立即返回给用户…