我希望在Azure Cloud Service上设置两个Web角色或网站。
网站需要共享相同的数据库架构。我使用NHibernate ORM,因此我必须确保两个项目始终使用相同的数据模型,否则会导致重大问题。
我研究过在一个网络角色上设置多个网站(这对我来说很奇怪,我不能只运行多个网络角色,每个角色都有一个网站)?
http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx
与任何优秀的开发人员一样,我使用登台服务器。如果我必须手动设置域名是配置文件,azure如何知道不会将访问该域的人员发送到登台服务器?! I.E.如果他们访问blah.foo.com并且我有两个部署(暂存和生产),IIS是否能够只知道将人们送到生产环境?
请告知最佳方法。
答案 0 :(得分:3)
首先,您当然可以拥有多个Web角色,每个角色都有一个站点;但是,每个角色实例都将部署到不同的虚拟机。例如,如果您在部署此角色时设置了两个Web角色,每个角色都有一个实例,那么您将支付两个虚拟机。如果您希望SLA应用于部署,则需要为每个Web角色实际设置实例计数为2,这意味着您有四个虚拟机在运行。通过将网站组合到同一个Web角色,您可以减少需要运行的实例数量并仍然获得SLA;但是,这种选择并非没有一些考虑。您提供的链接是如何设置多个网站在部署时在同一虚拟机上运行。请注意,使用该方法存在一些问题。我建议阅读Michael Collier的Tips for Publishing Multiple Sites in a Web Role。
其次,如果您不需要对虚拟机进行大量控制(例如注册特殊组件等),则可能需要查看Windows Azure网站作为选项。您可以选择使用其中一个付费级别的网站,但仍然拥有专用计算机,但您可以单独部署这些网站。我会说,由于它们共享底层数据库架构,因此您需要让两个站点处于锁定状态,这意味着您不太可能希望部署单独的更改,但它仍然可能。
最后,关于登台服务器。如果您在本地测试,则需要修改hosts文件以使主机名指向您的本地地址。 Wade Wegner在Running Multiple Websites in a Windows Azure Web Role发表了一篇文章。部署到Windows Azure后,您需要更改主机文件,或将其注释掉。如果您正在使用Staging部署插槽的实际想法,则可以使用与hosts文件相同的技巧指向测试时的分段部署的IP地址。