【问题标题】:Multiple azure websites on same application?同一应用程序上有多个天蓝色网站?
【发布时间】:2015-03-05 17:39:18
【问题描述】:

我有一个需要部署在不同网站上的网络应用程序。

条件:

  1. 所有网站的应用程序代码都是相同的;
  2. 应用程序是数据库驱动的;
  3. 不同的网站需要连接不同的数据库;
  4. 数据库的连接字符串在 web.config 中定义。

如何让不同的网站使用相同的应用部署和不同的 web.config 从不同的数据库中提取数据?

这是我的控制面板现在的样子:

这些网站都是我在 Visual Studio 之外单独发布的应用程序。

最终目标是这样的:

我发现这篇文章:http://www.wadewegner.com/2011/02/running-multiple-websites-in-a-windows-azure-web-role/ 它在“以 Web 角色在两个站点中运行相同的项目”中简要讨论了这一点

但这似乎应该用于本地设置,并且没有讨论如何在远程 Azure 实例上获取它。

【问题讨论】:

  • 您提到的博客文章谈到了 Azure Cloud 的其他服务 - 即 Web Role Cloud Service。它不是网站。我不明白的是,当所有网站/应用程序都有相同的代码时,为什么你有不同的 Visual Studio 项目,只有 web.config 更改......如果你有不同的存储库,那么你的要求就是在公园里实施.无论如何,您必须为每个配置和子域拥有一个单独的 Azure 网站。问题是如何集中管理和部署。最后一个问题 - 您是否计划拥有超过 3 个这样的“网站”?
  • 现在我只有运行不同构建的部署。现在,我在 VS 中确实有一个项目,我可以发布到多个域中的任何一个域(并且我在不同域中发布它的不同分支),但我需要在不同的网站上部署相同的版本。为什么我要部署同一个项目的同一个版本的多个副本:因为我不知道如何在不同的网站之间共享一个项目并让它们都连接到不同的数据库。我计划至少有十几个不同的站点运行不同的数据库。非常感谢您的帮助。
  • 下面是我的发布屏幕的样子:i.stack.imgur.com/ZRO3Q.jpg 在一个解决方案中快速发布到具有不同配置文件的不同网站。

标签: c# asp.net azure


【解决方案1】:

这看起来很简单。不确定您的问题到底是什么。

您可以轻松地将多个 Azure 网站映射(从源代码控制部署)到同一个源代码存储库。然后,如果您使用 VSO (Visual Studio Online),链接将为每个站点创建一个新的 CI 构建定义。然后,您只需编辑构建配置以包含每个环境的适当配置设置。

如果您使用其他源代码控制,您仍然可以自定义持续部署的工作方式。所有设置都可以通过一个特殊的.dpeloyment 文件进行配置。您可以阅读有关these configurable settings here 的更多信息。最重要的部分:

SCM_BUILD_ARGS=-p:Configuration=Debug;PublishProfile=MyChainedTransform

您可以更改构建配置以匹配目标站点的配置。

现在,如何使其独立于源代码管理。好的 Kudu 大师也考虑过这一点。您可以通过Application Setting for the web site itself 调整这些设置(查看Using App Settings instead of .deployment file 部分:

相反,您可以使用应用设置来设置受支持的相同值 在 .deployment 文件中。步骤是:

在 Azure 门户中转到您站点的“配置”选项卡

添加一个名为Project 的应用设置,并将其值设置为类似 WebProject/WebProject.csproj

然后在您的其他网站中,您可以将 Project 设置为指向不同的 .csproj 文件。

因此,您在站点应用程序设置中添加了一个新条目,其键为 SCM_BUILD_ARGS 和值 -p:Configuration=<your_desired_configuration>,您应该准备好了。

免责声明:没有检查解决方案,但没有任何理由不应该工作。

【讨论】:

  • 感谢您对此的解释。这让我找到了大量的文章,让我走上了我认为正确的道路。我的问题是我对自动在线构建一无所知,而且我不知道将 azure 网站链接到 VSO 项目。据我了解,网站自动从 VSO 存储库中获取项目,我需要设置构建并运行构建过程(通过触发器或队列)?当我定义了多个构建(开发、发布、测试)时,我可以告诉网站获取特定构建吗?如何将特定变更集推广到构建中?
  • @astaykov 我知道这是一篇旧帖子,但您能否展示任何帮助您解决此问题的解决方案或文档?我希望在 VS 中部署多个使用相同存储库的 webapp。区别在于 web.config。现在他们在发布到不同的网络应用程序之间手动编辑 web.config。
猜你喜欢
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多