Azure ASP.NET预热和部署插槽

时间:2017-01-19 14:07:13

标签: asp.net-mvc azure warm-up azure-deployment-slots

我正在使用ASP.NET MVC 5和Azure Premium应用服务,并使用AlwaysRunning选项设置" on"。

我为Web应用创建了一个部署插槽,部署了我的新版本,打开了插槽URL,一切都快速稳定。我交换到生产环境,在交换操作完成后,Web应用程序很慢,就像我手动部署到PROD一样。我不得不等待超过一分钟让我的应用程序再次运行。根据我读到的内容,我认为应用程序在交换后会被预热,但它没有成功。

交换后为什么这么慢?甚至不像认证表那样点击数据库的页面。

更新:切换到V2计划(SSD存储)后,应用程序会在不到2分钟内重新启动:)

1 个答案:

答案 0 :(得分:6)

要在交换期间预热站点,您必须配置要命中的路由。你需要在web.config(link)中使用这样的东西:

<system.webServer>
  <applicationInitialization >
    <add initializationPage="/warmup-cache" hostName="appinit-warmup.azurewebsites.net"/>
  </applicationInitialization>
</system.webServer>

该应用最有可能重新编译Razor视图,这就是为什么需要一段时间。您可以预编译Razor视图,这将极大地帮助(link)。如上所述,预先填充缓存的热身路线也会有所帮助。