如何在Web角色(IIS)中执行后台工作(如worker角色)?

时间:2013-04-10 07:22:27

标签: asp.net-mvc azure signalr azure-web-roles azureservicebus

我正在研究azure MVC4应用程序,我需要从servicebus读取消息,然后通过IIS(通过SignalR)更新在线用户。我想在Web角色中运行一些辅助角色类型的进程。寻找在Web角色本身处理servicebus的最佳实践。

2 个答案:

答案 0 :(得分:0)

要在Web角色中运行“辅助角色”,您只需在Web项目中实现RoleEntryPoint,就像在Worker角色中一样。

请记住,此“后台”进程(WaIISHost.exe)完全独立于Web应用程序进程(w3wp.exe)运行。虽然this article非常陈旧,但它仍然非常清楚地表示您的Web角色中运行的流程。

您可以将“SignalR”托管在“辅助角色”中,而不是IIS。并将消息从Web worker传递到服务总线,并从工作进程中读取它们。

答案 1 :(得分:0)

我认为最好的解决方案是使用Service Bus工作角色,您可以尝试使用服务总线队列的辅助角色。

您可以从Web获取所需的消息,通过服务总线队列将其发送到辅助角色,然后执行所需的过程。

之后,无论是向后使用队列还是服务队列,都可以将结果发送回webrole。

你可以查看这个链接,我认为他正在做一些有点相似的事情http://middlewareinthecloud.com/2012/06/23/azureservice-bus-queues-in-worker-roles/

,这是具有服务总线队列的辅助角色的MSDN URL http://msdn.microsoft.com/en-us/library/windowsazure/jj149831.aspx