Windows Azure - 我可以在同一个VM上运行Web角色和辅助角色吗?

时间:2012-05-20 01:22:41

标签: azure azure-worker-roles azure-web-roles

我想为我的网站设置一个网络角色,但我也希望该网站与我开发的另一个独立应用程序进行通信。

我认为没有必要拥有两个VM - 我可以将我的工作者角色放在与我的wrb角色相同的VM上吗?

什么阻止我在上传我的应用程序时的RDP?

此角色特别需要高端口号上的连接 - 我是否必须更改任何内容以允许此操作? (来自VM上的Windows防火墙的aparf)

(到目前为止,Azure使我的生活远比仅仅支付托管服务器更复杂)

2 个答案:

答案 0 :(得分:4)

我将向您指出我已经给出的其他SO答案,但是...... Web角色和辅助角色只是Windows 2008服务器,无论是否运行IIS。如果需要,可以在Web角色中运行所有内容,只需缩放实例数即可处理负载。或者......为您不希望与Web角色CPU /内存/网络竞争的某些任务创建辅助角色。

您可以通过tcp,http或https侦听任何端口。您最多可以打开25个这样的端口,并将流量直接指向您想要的任何角色(并且它将在该角色的所有实例之间进行负载平衡)。

您不想使用RDP并安装软件。重启后,VM不会保留此类更改。这是Windows Azure的一个很酷的部分:在你的webrole.cs或workerrole.cs中,你可以设置你想要的任何东西,然后在Run()中,只需睡眠或启动后台任务(或其他任何东西)。如果在启动期间,您需要安装某些东西(可能是MSI或注册表添加),这需要提升权限),您可以使用启动任务执行任何您想要的操作。重新启动期间会重新应用这些更改。虽然......如果你发现已经安装了东西,你可以将其短路并跳过安装(也就是说,有时你的东西会在重新启动之间保留 - 你不能指望这个,但是你可以放弃自己的面包屑到知道事情已经安装......)。

我发布的更多SO答案:

答案 1 :(得分:1)

是的,您可以将工作者角色转换为Windows服务,然后使用您的Web角色进行部署。

WebRole也可以定义RoleEntryPoint,因此您可以在启动时使用它来安装和关闭Windows服务。其余的,例如通过防火墙打开端口,对IIS等进行更改最好写成命令行脚本或.NET代码,并在实例启动时执行。这样,您可以通过轻松增加实例数来扩展服务。