一个Azure WebRole中的多个站点

时间:2014-02-15 11:29:16

标签: azure azure-web-roles

目标:这是关于支付一个WebRole实例但是演示/测试多个站点什么是完全独立的VS项目(ASP MVC 5,但这无关紧要)。站点的区别不是端口号而是域(主机)名称)

也许我想要太多,但通过主机名(或IP或端口)配置IIS站点,可以使用IIS轻松完成。

我理解(并且可以接受)这些限制,这些不同的VS项目必须在VS解决方案中一起存在,并且不能独立部署,我想存在一个包含所有配置的常见Azure项目元信息。

工具:VS 2013(Premium)和Azure工具2.2

现在我有一个包含2个项目的解决方案: MySite(ASP MVC 5项目) MySite.Azure

我想添加第二个MVC项目,并希望在MySite.Azure中修改配置和其他文件以部署MySite和MySite2,我想为MySite和MySite2分配不同的主机名。 (我知道如何使用我的DNS提供商将我的主机名分配给我的Azure IP,请假设已经完成)


如果无法按主机名区分,仍然可以按端口号区分吗?

1 个答案:

答案 0 :(得分:6)

从顶部开始

您不需要在单个解决方案中使用所有项目,但它确实使其更容易,因此我将假设您将在此阶段。

将第二个项目添加到您的解决方案中。

在Azure项目(MySite.Azure)上,在Roles文件夹上,右键单击并按添加> Web角色项目在解决方案中,并将其他项目添加到Azure项目中。

接下来在

部分的ServiceDefinition.csdef中
<Site>
   <Site name="Site1" physicalDirectory="C:\Users\User\Documents\Visual Studio 2012\Projects\Project1">
    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="domain1.com" />
      <Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="domain1.com" />
    </Bindings>
  </Site>
  <Site name="Site2" physicalDirectory="C:\Users\User\Documents\Visual Studio 2012\Projects\Project2">
    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="domain2.com" />
      <Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="domain2.com" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="Endpoint1" protocol="http" port="80" />
  <InputEndpoint name="Endpoint2" protocol="https" port="443" certificate="SSLName" />
</Endpoints>

这显示了2个端点以及SSL使用。