Windows Azure Visual Studio解决方案

时间:2012-01-04 11:31:49

标签: visual-studio azure

我的应用程序包含25个C#项目,这些项目分为5个解决方案。

现在我想将这些项目迁移到Windows Azure下运行,我意识到我应该创建一个包含我所有Web角色和工作者角色的解决方案。

这是否是正确的方法,或者我仍然可以将我的项目分成几个解决方案。

项目如下所示:

  • 一个Web应用程序。
  • 5 Windows服务。
  • 其他人都是班级图书馆。

4 个答案:

答案 0 :(得分:2)

其他人的好回答。让我更多地介绍一个托管服务与多个托管服务:如果Web和Worker角色需要直接交互(例如,通过从Web角色实例到特定工作者角色实例的TCP连接),那么这些角色应该放在相同的托管服务。在部署之外,您的托管服务侦听器(web,wcf等)可通过IP +端口访问;除非您还启用Azure Connect(VPN),否则无法访问特定实例。

如果您的Web和辅助角色通过Azure队列或服务总线进行交互,则可以选择将它们部署到单独的托管服务,并且仍然可以在它们之间进行通信。

答案 1 :(得分:1)

你是对的!如果您为所有webrole和worker角色项目仅创建一个云项目,则所有项目都将转到1个托管服务下

你仍然可以将你的项目分成几个解决方案,你必须在azure平台上创建那么多的云项目和托管服务

答案 2 :(得分:1)

你可以做到这两点。

您可以按原样保留5个独立的解决方案。然后,创建一个包含所有25个项目的新解决方案。

您选择包含Cloud(ccproj)项目的解决方案取决于您希望如何分发您的应用程序。

每个CCPROJ对应1个托管服务。因此,您可以将所有Web和工作者放入单个托管服务中。或者,您可以将每个Web角色作为不同的托管服务,并将所有工作者角色放在另一个托管服务上。或者你可以做这些的组合。一个明确的答案需要有关您的应用程序的更多信息,但在VS中,项目可以属于多个解决方案。

答案 3 :(得分:1)

最重要的问题是:这25个项目中有多少是实际的网站/ Web应用程序或Windows服务,其中有多少只是类库。

对于类库,您不必转换任何内容。

现在为Cloud项目。您必须决定要创建的托管服务数量。如果需要,您可以阅读my blog post以熟悉“托管服务”,“角色”,“角色实例”等术语。

一旦确定了云结构 - 每个服务的托管服务和角色数量,您就可以为每个托管服务创建新的解决方案。

您还可以决定将多个网站托管到一个WebRole中,这是完全支持和可能的,因为自SDK 1.3以来,WebRoles在完整的IIS环境中运行。您详细了解了如何在单个网络角色herehere中托管多个网站,甚至可以使用Windows Azure Accelerator for Web Roles

如果您有多个Windows服务或后台工作程序进程,您可以将它们组合成单个工作者角色,或者如果您希望每个进程具有单独的弹性,或者您的工作者需要一个工作者角色,则可以为每个单独的工作进程定义工作者角色很多计算能力和记忆。

有关问题更新的

更新

因此,Web应用程序很明确 - 它转到一个Web角色。现在为Windows服务。您必须回答两个主要注意事项才能找到是将它们放入一个或多个工作者角色中:

  1. 您的任何Windows服务是否需要过多的资源(即大量的计算能力,或者 很多RAM)?
  2. 您的任何Windows服务是否需要独立扩展?
  3. 如果任何问题的答案为“是”,则将此Windows服务放在单个辅助角色中。将所有Windows服务放在单个辅助角色中,这两个问题的答案都是“否”。这意味着您将扩展所有这些或不扩展它们(通过操纵实例数量)。

    对于云服务(或托管服务),您可以决定是使用单个云服务部署所有角色(Web和工作人员)还是使用一个托管服务来部署Web角色和另一个角色一个部署工人角色。与计费预期完全没有区别。您仍将拥有Web角色和辅助角色,并且将根据实例计数和数据流量向您收取费用。您可以独立扩展任何角色(更改特定角色的实例数),无论其部署(在同一托管服务或其他托管服务中)。

    最后,我建议您为每个托管服务(云计划)提供单一解决方案。因此,如果您决定将Web角色和工作者角色放入单个托管服务中,那么您将获得单一解决方案。如果您有两个托管服务(云项目),您将有两个解决方案。

    希望这有帮助。