是使用辅助角色还是Web角色:Windows Azure

时间:2010-04-09 18:34:46

标签: c# windows azure

我正在编写一个小型计算程序,对blob文件进行大量读取操作......我是否应该去工作角色或Web角色....

5 个答案:

答案 0 :(得分:13)

Web角色和辅助角色之间的唯一区别是,在Web角色中,IIS(实际上是托管Web Core)会启动并指向您的应用程序数据目录。您仍然可以将代码放在WebRole.cs中,这与您在worker角色中执行的操作完全相同,因此决定应该是“您想要IIS吗?”如果是这样,请使用Web角色。如果没有,请使用辅助角色。

答案 1 :(得分:5)

最终是一个工作者角色,顾名思义,Web角色旨在回答Web请求,并且根据IIS设置,Web请求可能会在1分钟左右后超时。

答案 2 :(得分:2)

如果没有更多信息,很难给出确定的答案,但乍一看我会说工人角色。这就像是一个后端Windows服务,而不是在HTTP请求到达时回答的问题。

答案 3 :(得分:2)

关于如何托管辅助角色的问题:它与托管Web角色的过程完全相同 - 只需向项目添加新角色,然后选择“工作者角色”而不是“Web角色”。角色只不过是“虚拟机”。当您选择“实例”的数量时,这相当于正在运行的虚拟机数量。 @smarx解释的只是说网络角色(或网络虚拟机)可以随时使用IIS,而工作者角色则没有。

要了解工作者角色的作用,有两种相对常见的模式:

  • 建立自己的网络服务器(你的角色实际上可以在启动时启动程序,包括像web服务器这样的好东西)。在这种情况下,worker角色会将内容返回给调用者,就像Web角色中的内容一样。只是没有IIS帮忙。
  • 使用队列将任务传递给您的辅助角色。在这种情况下,您的辅助角色会从队列中读取一些消息(您选择消息的格式)。然后它就会对它起作用。然后它继续读取下一条消息。示例:您创建了一个照片共享网站。您将网站放在网络角色上,并且您可以选择让用户上传照片。然后将其存储在数据库(或表)中,并放置一个队列消息,如“为图片#123创建缩略图”。 worker角色读取此消息,从数据库中提取图片#123,并创建一些缩略图,将其推回数据库中。这个过程可能需要很长时间,但您的网站访问者甚至都没有注意到。

如果您想看一些精彩的入门视频,请查看Cloud Cover Show。第3集专门讨论创建工作者角色,而@smarx展示了如何从工作者角色托管Mongoose html服务器。

答案 4 :(得分:0)

我会简单的

  • 网络角色用于托管基于IIS的网络应用程序。

  • 职员角色适用于任何其他应用程序。

两者之间唯一真正的区别是IIS安装在Web角色上,您的应用程序将部署到其中。