2016-06-15 37 views
4

我需要更好地了解Azure应用服务的插槽应用程序设置。何时应用以及如何正确使用它们。Azure应用服务的插槽设置问题

我有2个应用程序服务设置每个运行2个插槽如下。

  1. 站点1与插槽 - 建筑物分段
  2. 站点1与插槽 - 分期

  3. 站点2与槽 - 建筑产

  4. 站点2与槽 - 生产

因此,对于每个站点,我希望能够在应用程序设置栏中为构建插槽放置无效的连接字符串,以便si te不能被访问,只会给你一个azuerwebsites.net url上的错误页面。

在我每个我的生产槽中,然后想要把正确的连接字符串,以便一旦交换,他们将工作。

我不能得到这个工作可靠,设置不适用于我交换。我应该将生产插槽上的连接字符串标记为插槽设置吗?构建插槽上的原始应该是插槽设置?我需要安装一些我不知道的nuget软件包吗?

请帮忙

回答

2

我的问题的答案在本文档中找到。 (其中如果从Azure团队来自人翻过,确实应该从配置连接到部署插槽部分here

Windows Azure Web Sites: How Application Strings and Connection Strings Work

概括地说,你不应该使用ConfigurationManager中,从应用程序获取设置设置刀片,除非你使用.NET 4.5框架。

如果你不使用.NET 4.5框架,你应该使用Environment.GetEnvironmentVariable来代替。

当我将现有的环境转换为App Services时,这让我感到沮丧。我会在某个地方爱上一个大警告,告诉我要确保这一点。

编辑:所以这不是整个故事;

另一部分是文档中“sticky”和“not sticky”设置的含义。我一直在寻找这样一个事实:这些设置实际上并没有放到你的web.config文件中,而是生活在你的应用程序可访问的内存属性包中。我找不到任何关于如何看到这个神秘包里有什么的参考,但是一旦知道它的答案就很明显。

在交换过程中,您的临时插槽上的任何设置实际上都会复制到生产插槽的设置中,即实际上会在生产插槽“应用程序设置”刀片中更改它。而且,无论您的插槽的“应用程序设置”刀片中的内容是内存属性包中的内容。

+0

也许REST-API通过查看当前的应用程序设置来帮助“看看这个神秘的包里有什么”? 例如https://mysite.scm.azurewebsites.net/api/settings –

+0

是的,正如我上面所说的那样,这个神秘的包并不是一个谜。它只是在你的应用程序设置上。它只是极大地困惑我,刀片设置实际上与网站二进制文件交换。如果一切都是插槽设置,我不会感到困惑,但因为它们不是,我的交换是在部署管道期间使用Power Shell脚本完成的,所以在手动执行交换时,我看不到交换警告。正是这些警告实际上帮助我理解发生了什么:) –

4

如果我正确理解你的问题,你需要将它们全部标记为插槽设置。

交换完成后,标记为插槽设置的应用程序设置和连接字符串将保留在插槽中。没有标记为插槽设置的任何设置/连接字符串都将与应用程序交换。

+0

变量是否立即交换?我尝试了两种插槽设置,但它在交换后并不适用新设置。如果我在部署之后巧妙地编辑设置,它突然应用,但在交换过程中不会发生。 –