Azure ASP.NET预热和部署插槽

Fra*_*ein 1 asp.net-mvc azure warm-up azure-deployment-slots

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

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

交换后为什么这么慢?甚至像验证表单那样没有点击数据库的页面.

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

juu*_*nas 6

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

<system.webServer>
  <applicationInitialization >
    <add initializationPage="/warmup-cache" hostName="appinit-warmup.azurewebsites.net"/>
  </applicationInitialization>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

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