我有一个 Azure 部署,在一个 Web 角色上配置了两个站点,如下所示:
<WebRole name="Studio" vmsize="Small">
<Sites>
<Site name="Studio" physicalDirectory="..\Studio">
<Bindings>
<Binding name="HttpIn" endpointName="HttpIn" hostHeader="studio.mydomain.localhost" />
</Bindings>
</Site>
<Site name="Admin" physicalDirectory="..\Admin">
<Bindings>
<Binding name="HttpIn" endpointName="HttpIn" hostHeader="admin.mydomain.localhost" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="HttpIn" protocol="http" port="80" />
</Endpoints>
<Imports>
<Import moduleName="Diagnostics" />
</Imports>
</WebRole>
我的主机文件中也映射了地址:
127.0.0.1 studio.mydomain.localhost
127.0.0.1 admin.mydomain.localhost
这很好用,如果我在浏览器中使用http://studio.mydomain.localhost:81/
and进行测试http://admin.mydomain.localhost:81/
,那么我会得到两个不同的索引页面,正如预期的那样。
但是,如果我在 Visual Studio 中按 F5,它会坚持尝试启动http://127.0.0.1:81/
,这当然会导致 404 Bad Request 错误。
有什么方法可以让 VS 立即从 F5 启动正确的地址?这只是一件小事,但每次都必须重新输入地址很费时间。
而且,当我们讨论这个主题时,当我按下 F5 时,Azure 如何选择我要启动的角色?我在同一个 Azure 项目中有一个 Web 服务角色。为什么不尝试启动它?它们是我缺少的一些设置,还是全部由 ServiceDefinition.csdef 中出现的顺序控制?
我看过以下文章(以及其他文章)。虽然两者都提供了丰富的信息,但我在任何一个中都看不到答案:
http://blog.elastacloud.com/2011/01/11/azure-running-multiple-web-sites-in-a-single-webrole/
http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx