我有一个在ASP.NET上运行的Web应用程序,使用SignalR我支持客户端和服务器之间的实时通信。
我需要某种类型的工作进程在循环中工作,并根据需要使用SignalR连接通知客户端,并且Web应用程序必须能够调用工作进程。 (工作进程与Web应用程序之间的双向通信)
您建议在Web应用程序和工作人员之间进行通信?
场景将是:
请求来自客户端 - >我通知工人 - >工人完成他的工作 - >回调网络应用程序 - >通知客户。
或
工人通知 - > Web应用程序,使用SignalR通知 - >客户端
我能以某种方式分享实例吗?我可以在IIS内的同一应用程序域中运行此工作程序吗?我该怎么做呢?
谢谢!
答案 0 :(得分:1)
通常我通过数据库在ASP.NET和另一个进程(在我的大多数情况下是一个计划的控制台应用程序)之间进行通信。
即。 ASP.NET应用程序将一些作业写入作业表,控制台应用程序(通过Windows任务计划程序每10分钟左右运行一次)从数据库表中获取作业并处理它们。
答案 1 :(得分:1)
您可以使用异步IIS托管的WCF或Web服务,从客户端发起请求,并在请求完成回调中处理响应。
由于IIS可以实例化服务类的单独实例,因此该类可以直接调用相应的worker,因为用户不会直接等待响应。