目标:这是关于支付一个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,请假设已经完成)
如果无法按主机名区分,仍然可以按端口号区分吗?
答案 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使用。