ASP.NET和后台工作进程

时间:2011-12-23 22:08:31

标签: c# asp.net iis backgroundworker signalr

我有一个在ASP.NET上运行的Web应用程序,使用SignalR我支持客户端和服务器之间的实时通信。

我需要某种类型的工作进程在循环中工作,并根据需要使用SignalR连接通知客户端,并且Web应用程序必须能够调用工作进程。 (工作进程与Web应用程序之间的双向通信

您建议在Web应用程序和工作人员之间进行通信?

场景将是:

请求来自客户端 - >我通知工人 - >工人完成他的工作 - >回调网络应用程序 - >通知客户。

工人通知 - > Web应用程序,使用SignalR通知 - >客户端

我能以某种方式分享实例吗?我可以在IIS内的同一应用程序域中运行此工作程序吗?我该怎么做呢?

谢谢!

2 个答案:

答案 0 :(得分:1)

通常我通过数据库在ASP.NET和另一个进程(在我的大多数情况下是一个计划的控制台应用程序)之间进行通信。

即。 ASP.NET应用程序将一些作业写入作业表,控制台应用程序(通过Windows任务计划程序每10分钟左右运行一次)从数据库表中获取作业并处理它们。

答案 1 :(得分:1)

您可以使用异步IIS托管的WCF或Web服务,从客户端发起请求,并在请求完成回调中处理响应。

由于IIS可以实例化服务类的单独实例,因此该类可以直接调用相应的worker,因为用户不会直接等待响应。