我有一个基于 3 个 Web 应用程序的解决方案,这些应用程序部署到同一个 Azure 虚拟机中。我的 ServiceDefinition.csdef 有 3 <site>
指向具有所需绑定(bind)的源目录的元素。
因此,当我执行发布时,所有 3 个应用程序都会部署,但只有第一个应用程序被预编译,其他 2 个应用程序只是简单地复制到 azure VM。这是一个问题,因为我的配置转换没有被执行。
有没有办法执行 azure 部署,发布所有应用程序的预编译版本 - 而不仅仅是第一个?
最佳答案
Wade Wegner 不久前写了一篇关于此的博客文章。
Running Multiple Websites in a Windows Azure Web Role
请记住:部署中的每个角色都必须保持在一起 - 您不能将一个角色部署到一项服务,而将另一个角色部署到另一项服务。如果您想这样做: 将您的角色分成单独的部署。然后您可以将它们发布到不同的 URL。
我建议您为每个网络应用程序创建一个实例。这将通过解耦产品部署来降低部署更新所涉及的风险。
编辑:(从 Smarx 窃取,Windows Azure with Multiple Sites in One Role not transforming 2nd web.debug.config to web.config)
当您添加另一个 Web 角色时,您需要提供一个physicalPath 来指向您想要部署的内容,并且 SDK 所做的就是将其在该路径中找到的文件复制到您的包中。它不进行构建。
您可能应该构建并发布要部署的 Web 应用程序,然后将physicalDirectory 指向该发布步骤的输出。 (确保您在physicalDirectory中设置的目录准确包含您想要部署到云的内容。)
关于.net - 每个 Web 角色多个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9841498/