Azure应用服务的插槽设置问题

Dan*_*den 12 azure azure-web-sites azure-deployment-slots

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

我有2个App Services设置,每个运行2个插槽,如下所示.

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

  3. 站点2与插槽 - 建设 - 生产

  4. 站点2与插槽 - 生产

因此,对于每个站点,我希望能够在"应用程序设置"刀片中为构建槽添加无效的连接字符串,以便无法访问该站点,并且只会在azuerwebsites.net网址上为您提供基本错误页面那个插槽.

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

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

请帮忙

juu*_*nas 9

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

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


Dan*_*den 5

在本文中找到了我的问题的答案。(如果有来自Azure团队的人来访,应该从此处的“部署插槽的配置”部分真正链接到该站点)

Windows Azure网站:应用程序字符串和连接字符串的工作方式

简而言之,除非使用的是.NET 4.5框架,否则不应使用ConfigurationManager从“应用程序设置”刀片中获取设置。

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

当我将现有的环境转换为App Services时,这让我感到震惊。我本来希望在某个地方警告我,以确保做到这一点。

编辑:所以这不是全部。

另一部分是文档中“粘性”和“非粘性”设置的含义。我一直在寻找这样的事实:设置实际上并未放入您的web.config文件中,而是位于应用程序可访问的内存属性包中。我找不到任何有关如何看待这个神秘包包的参考,但是一旦您知道了答案,它就会很明显。

交换期间,登台插槽上的所有设置实际上都会复制到生产插槽的设置,即实际上是在生产插槽的“应用程序设置”刀片中对其进行更改。插槽的“应用程序设置”刀片中的内容就是内存属性包中的内容。