交换广告位时,我们收到以下消息:
但是,Web应用程序的“应用程序设置”中不存在WEBSITE_HTTPLOGGING_CONTAINER_URL设置。我知道它来自启用Web App诊断日志,但它在某种程度上是隐藏的。
问题是,这将导致生产槽中的IIS重新启动,从而导致停机,直到完成所有初始化任务。无法将此设置配置为“插槽设置”(这将阻止编辑应用程序设置)。
奇怪的是DIAGNOSTICS_AZUREBLOBCONTAINERSASURL在应用程序设置中可见(它也是诊断日志配置)。
答案 0 :(得分:2)
WEBSITE_HTTPLOGGING_CONTAINER_URL是一个隐藏的应用程序设置?
简短回答:是的。这是一个隐藏的应用程序设置,用于存储Web服务器日志的blob容器URL。
在诊断日志中启用Web服务器登录后,它将在应用程序设置中添加您的存储容器URL。您无法在应用程序设置中更改它。
在我看来,我认为在交换网络应用时必须更改此值。由于生产槽可以设置自己的Web服务器日志存储容器。如果没有更改,则可以更改blob容器的日志信息。
您可以在KUDU控制台的环境变量中找到它,如下所示。
打开kudu。
然后单击环境并找到环境变量。
更新
问题是更改应用程序设置将执行IIS重置,这将关闭生产槽。
据我所知,交换操作不会导致生产槽中的IIS重启。在交换到生产槽之前,它会在暂存槽中自动预热。
交换操作如下:
1.标记为“Slot”的应用程序设置和连接字符串从生产槽中读取,并应用于Staging插槽中的站点。这会导致站点的工作进程重新启动,以使这些更改生效并作为流程环境变量显示;
2.然后,临时插槽中的站点变热了。为了预热站点,会向站点的根目录发出HTTP请求,以请求运行站点的每个VM实例。预热请求的User-Agent标头设置为“SiteWarmup”;
3.预热完成后,生产中的站点的主机名和交换槽将被交换。现在,在暂存槽中已经预热的站点开始获得生产流量,而以前位于生产槽中的站点现在位于暂存槽中
4.现在位于暂存插槽中的站点将使用与暂存插槽关联的应用程序设置和连接字符串进行更新。这导致重新启动该站点,但它不再在生产槽中,因此重启是无害的。
但有时在生产设置应用于暂存插槽之后以及实际交换主机名之前暂停是很有用的。
现在,azure web app还有另一个交换:swap with preview。
当您使用Swap with preview选项时,App Service会执行以下操作:
1.保持目标插槽不变,以便该插槽上的现有工作负载(例如生产)不受影响。
2.将目标插槽的配置元素应用于源插槽,包括特定于插槽的连接字符串和应用程序设置。 使用上述配置元素重新启动源插槽上的工作进程。
3.完成交换后:将预热的源插槽移动到目标插槽中。目标插槽将像手动交换一样移动到源插槽中。
4.取消交换时:将源插槽的配置元素重新应用到源插槽。
您可以准确预览应用在目标广告位配置中的行为方式。完成验证后,您将在单独的步骤中完成交换。此步骤具有额外的优势,即源插槽已经使用所需的配置进行预热,客户端不会遇到任何停机时间。
您可以在下面找到它: