Azure:结合Web和辅助角色:应用程序池循环

时间:2011-11-14 18:31:08

标签: azure background-process azure-web-roles azure-queues

我打算在Azure中进行一些简单的后台处理。我已经运行了一个webrole,并希望使用相同的角色,以便我不必使用(并支付!)一个专门的工作者角色。

我已经读过我可以简单地覆盖WebRole类中的Run(),它来自RoleEntryPoint,并在那里实现我的“穷人的调度”。它应定期从队列中获取消息并进行处理。

现在我的问题是:WebRole是在自己的流程或主题中运行,还是更重要的是,当应用程序池/应用程序域被回收时,WebRole会发生什么?

2 个答案:

答案 0 :(得分:2)

如果您使用完全IIS模式运行(可从1.3 SDK开始),则RoleEntryPoint和IIS处于不同的进程中。如果ServiceDefinition中有<Sites>元素,您将知道您正在使用完整IIS模式。

IIS实际上在w3wp.exe中运行您的网站(就像您通常所期望的那样),因为它是自己的appPool。 RoleEntryPoint代码是由完全不同的进程启动和进行的,因此它们之间没有关系(例如,崩溃一个不会影响另一个)。

答案 1 :(得分:2)

添加@dunnry的答案;同样有趣的是,在此文件夹中的程序集副本上调用run:

e:\approot\bin

IIS指向此文件夹中应用程序的另一个副本:

e:\siteroot\0