繁体   English   中英

Web服务器上的后台进程与ASMX Webservice

[英]Background process on webserver with an ASMX Webservice

我正面临一个问题,我需要通过asmx webservice接收用户请求,并且我需要的每个请求:

1)向用户发回他的请求的Id。 类似于:“您的请求已收到id ####”。 (id由DB生成,自动增量列。)

2)启动后台进程而不阻止用户进行响应,我的意思是webservice发回Id并在后台启动进程。

我知道也许我应该使用WCF,但我认为服务器无法运行它,但如果你能在这两种服务中谈论我的答案,那就更好了。

我不知道做这个任务。 我将感谢你的帮助。

通常我会在定期启动控制台应用程序的计划任务的帮助下执行此操作。

ASMX Web服务和计划的控制台应用程序之间的通信是通过我填充工作项队列表的数据库完成的。

有了这个(也许不是那么优雅的方法)我得到以下好处:

  • 完全绕过ASP.NET中的后台线程(我真的不完全理解)
  • 如果重新启动ASP.NET应用程序,则后台处理甚至可以正常工作。

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

你可以使用MSMQ。 创建一个队列来处理传入的请求和一个服务,以从队列中获取任务并处理它们。 如果不了解您的具体细节,很难建议“正确”的解决方案。

我只是运行一个后台任务(可能在你的global.asax中),它在一系列已记录的请求中运行,然后选择它们并实际执行它们。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM