Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将配置文件粘贴到特定Azure插槽_Azure_Sitecore - Fatal编程技术网

如何将配置文件粘贴到特定Azure插槽

如何将配置文件粘贴到特定Azure插槽,azure,sitecore,Azure,Sitecore,我们的项目位于sitecore中,并使用Azure-App服务进行部署。我们已经创建了暂存插槽,除了应用程序设置和连接字符串之外,我们还希望使一些配置文件插槽特定(交换时坚持使用插槽) 有没有一种方法可以使整个配置文件粘在一个特定的插槽上 我们还尝试在azure中编写一些应用程序中的sitecore配置设置选项,并勾选它以使其保持在插槽中,但它仍在被替换 请在这方面帮助我。在Azure门户中,您可以添加应用程序设置并将其标记为“特定于插槽”。可以使用正常的System.Configuration

我们的项目位于sitecore中,并使用Azure-App服务进行部署。我们已经创建了暂存插槽,除了应用程序设置和连接字符串之外,我们还希望使一些配置文件插槽特定(交换时坚持使用插槽)

有没有一种方法可以使整个配置文件粘在一个特定的插槽上

我们还尝试在azure中编写一些应用程序中的sitecore配置设置选项,并勾选它以使其保持在插槽中,但它仍在被替换


请在这方面帮助我。

在Azure门户中,您可以添加应用程序设置并将其标记为“特定于插槽”。可以使用正常的System.Configuration.ConfigurationManager.AppSettings语义从应用程序中读取这些内容


据我所知,无法通过编程方式询问Azure应用程序正在哪个插槽中运行。

或者,您可以将AppSettings添加到Azure门户的应用程序设置中,并将这些设置粘贴到插槽中。这些设置将覆盖web.config中的任何内容。例如,如果Azure Portal应用程序设置的键为“Greeting”,值为“Welcome”,而web.config的应用程序设置的值为“Hello”-则结果为“Welcome”。如果web.config中有一个AppSetting不在Azure设置中,那么它将使用web.config值

有没有一种方法可以使整个配置文件粘在一个特定的插槽上

不,这是不可能的(截至撰写此答案之日,因为azure一直在发展)

您可以查看插槽交换过程的详细信息。我的改写:

  • 应用于临时插槽->站点重新启动的生产插槽设置
  • 分段槽预热
  • 生产和暂存插槽的主机名将被交换
  • 应用于(新)暂存插槽->(新)暂存插槽重新启动的暂存插槽设置
  • 所以基本上,插槽设置是真正的特定功能;除此之外,插槽只是单独的站点,具有不同的主机名、ftp共享等

    任何像“我想让文件粘贴到插槽”这样的逻辑都应该以某种自定义方式实现


    例如,您可以考虑使用配置转换(可以用作启动)。.

    对于web.config,我可以执行与您指定的相同的操作。但是对于sitecore配置文件中的otjer配置,如果我在azure portal的应用程序设置中指定它,它将不起作用。假设have配置为sitecore配置文件new=hello,并且在应用程序设置中指定new=hi,那么它将接受hello(来自配置文件而非应用程序设置)对于web.config,我可以执行与您指定的相同的操作。但是对于sitecore配置文件中的otjer配置,如果我在azure portal的应用程序设置中指定它,它将不起作用。假设have配置为sitecore配置文件new=hello,并且在应用程序设置中指定new=hi,那么它将接受hello(从配置文件而不是应用程序设置)您是否有一组名为“MyKey.Slot”的Sitecore设置然后按照上面的每个插槽创建常规应用程序设置,将您指向需要阅读的设置。2级误导。您可以再解释一下吗?我目前正在指定azure portal上提到的应用程序设置中的sitecore设置,但它没有采用该设置。我正在将代码从tfs部署到azure应用程序服务staging环境。我在应用程序设置部分的sitecore设置中指定了,但它仍然没有使用该设置。对于其他配置,如:App setting config,它工作正常。假设您正在尝试指定2个目标电子邮件地址,一个在后台插槽,一个在生产插槽。创建2个sitecore设置调用d
    。在Azure插槽特定设置中(在门户中)创建一个名为
    TargetEmailSetting
    的设置,并将值设置为
    TargetEmail.Backstage
    TargetEmail.Production
    。在代码中…
    Sitecore.GetSetting(AppSettings[“TargetEmailSetting”])
    -未经测试,但类似于此