如何为每个Azure部署插槽使用不同的web.config文件?

时间:2015-04-08 22:36:02

标签: asp.net azure

我有几个Azure部署插槽:dev,staging,production等。

我想创建一组web.config文件,每个部署插槽一个。所以web-dev.config,web-staging.config等

我不想在Azure中使用特定于插槽的设置,因为如果您有多个或两个设置,那么将所有设置放在文本文件中似乎要容易得多。

我不想在单个web.config文件上编写XML转换,因为这是疯狂的。配置文件已经具有足够的复杂性,没有额外的间接层。即使我不这么认为,web.config转换似乎与构建配置相关联,而不是与部署目标相关联。我不想为了部署过程的利益而扭曲我的构建过程。

我知道跨文件复制和粘贴配置设置很严重,但我们就是这样。在MS的某个人修复ASP.net中的配置之前,我只想为每个部署目标创建一个文件并将其称为一天。

我该怎么做?

1 个答案:

答案 0 :(得分:4)

您有几个选择。

最明显的是transformations。我不知道为什么你这么快就打折它:只有少数设置应该在环境之间改变,对吧?

或者您可以拥有多个.config文件,然后将其作为部署脚本的一部分(我希望您不仅仅使用VS进行部署)。您的脚本可以选择正确的文件并将其重命名为web.config。

当然,您可以移动web.config文件中的所有应用程序设置和连接字符串,甚至更多,并使用备用配置系统。也许是一个巨大的XML或JSON文件,其中包含每个环境的所有设置。或者也许使用环境变量。

真的,您可以编写部署脚本并按照自己的需要设置配置。它不是"取决于微软,它取决于你,尽管它们使得在ASP.NET 5中跨多个源使用通用配置系统变得更加容易。