Azure 应用服务的槽设置问题

Trouble with Slot Setting for Azure App Services

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

我设置了 2 个应用服务,每个 运行 2 个插槽,如下所示。

  1. 带插槽的站点 1 - 建筑分期
  2. 带插槽的站点 1 - 暂存

  3. 带插槽的站点 2 - 建筑生产

  4. 有插槽的站点 2 - 生产

因此,对于每个站点,我希望能够在“应用程序设置”边栏选项卡中为构建插槽放置一个无效的连接字符串,这样就无法访问该站点,并且基本上只会给您一个错误页面该插槽的 azuerwebsites.net url。

然后我想在我的每个生产插槽中放置正确的连接字符串,以便一旦交换它们就可以工作。

我无法让它可靠地工作,当我交换时设置不适用。我应该将生产插槽上的连接字符串标记为插槽设置吗?构建插槽上的原始设置应该是插槽设置吗?我是否需要安装某种我不知道的 nuget 包。

请帮忙

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

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

我的问题的答案已在此文档中找到。 (如果 Azure 团队的任何人遇到过,应该真正从部署槽配置部分链接到 here

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

简而言之,您不应该使用 ConfigurationManager 从应用程序设置中获取设置 blade 除非您使用的是 .NET 4.5 框架。

如果您不使用 .NET 4.5 框架,您应该使用 Environment.GetEnvironmentVariable

当我将我的现有环境转换为应用程序服务时,这让我感到困惑。我会喜欢在某个地方发出警告,告诉我要确保这一点。

编辑:所以这不是全部;

另一部分是文档中"sticky"和"not sticky"设置的含义。我一直在寻找这样一个事实,即这些设置实际上并未放入您的 web.config 文件中,而是存在于您的应用程序可以访问的内存 属性 包中。我找不到任何关于如何看到这个神秘袋子里的东西的参考资料,但一旦你知道答案就很明显了。

在交换期间,临时插槽上的任何设置实际上都会复制到生产插槽的设置中,即它实际上会在生产插槽中更改它 "Application Settings" blade。插槽的应用程序设置 blade 中的内容就是内存 属性 包中的内容。