Azure Staging<>生产交换不是无缝的 - 需要再次预热

标签 azure azure-web-app-service

大约一年前,Azure Web App 插槽交换是“无缝”的 - 一旦完成,新实例就会预热以立即接受新请求。

现在,当我将插槽从 STAGING 交换到 Production 时,即使在针对 STAGING 运行测试以预热应用程序之后,也会将结果交换为很多时刻的热身时间。

这种情况可能会发生怎样的变化?我该如何确保我的应用在交换期间保持 100% 可访问?

最佳答案

您对插槽配置进行过任何更改吗?

我注意到有一些事情会导致生产预热后不会立即进行交换,如果您仔细考虑一下,它们是有道理的:

  • 在“应用程序设置”下的每个插槽配置中,如果应用程序设置或连接字符串与未选中“插槽配置”复选框的任何设置不完全相同,那么在这些情况下,它将进行预热,然后是交换,然后必须再次预热,因为它似乎在交换后更新了这些设置(看起来是这样)。
    • 为确保您的设置正确,如果您要进行手动交换,请检查 Azure 门户是否显示“无警告”,以确保系统不必执行任何异常操作
  • 在手动交换中,源和目标的选择很重要。这是因为源插槽首先使用目标插槽配置进行预热(因此在预热期间会很慢),然后发生交换,这意味着源变为目标,这应该是立即的。然后再次进行预热以使原始源恢复到其原始设置。因此,如果您为源选择了错误的项目,则预热时间将加倍。
  • 确保您的 web.config 中有 applicationInitialization 设置,以强制预热在交换之前命中您网站上的 URL:

    <system.webserver> <applicationInitialization> <add initializationPage="/" /> </applicationInitialization> </system.webServer>

关于Azure Staging<>生产交换不是无缝的 - 需要再次预热,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40371113/

相关文章:

web-services - Azure Web App 响应时间较长

azure - 如何在Azure应用服务中指定分层应用程序设置?

asp.net-mvc - 使用 MVC 作为模板引擎的 Kentico CMS 可以托管在 Azure 网站上吗?

node.js - 如何通过流获取文件

java - Azure AD token 签名验证无效。使用算法验证时, token 的签名无效 : SHA256withRSA

Azure函数: how to set CORS via automation?

azure - 如何让 Azure 应用服务在静态站点上添加自定义 HTTP 响应 header ?

azure - 如何确定 Azure 托管 WebApp 的 IP 地址

azure - 如何有条件地在 ARM 模板中包含 dependentOn

azure 资源管理器服务总线提供商?