Azure ASP.NET 热身和部署槽
Azure ASP.NET Warm Up and Deployment Slot
我正在使用 ASP.NET MVC 5 和 Azure Premium 应用服务,并设置了 AlwaysRunning 选项 "on"。
我为 Web 应用程序创建了一个部署槽,部署了我的新版本,打开了槽 URL,一切都快速而稳定。我切换到生产环境,在切换操作完成后,Web 应用程序运行缓慢,就像我手动部署到 PROD 一样。我不得不等待一分多钟才能让我的应用程序再次运行。根据我读到的内容,我认为应用程序会在交换后预热,但没有成功。
为什么交换后这么慢?甚至没有像身份验证表单那样访问数据库的页面。
更新:切换到 V2 计划(SSD 存储)后,应用程序在不到 2 分钟内重新启动:)
要在交换期间预热站点,您必须配置要命中的路由。在 web.config (link):
中你需要这样的东西
<system.webServer>
<applicationInitialization >
<add initializationPage="/warmup-cache" hostName="appinit-warmup.azurewebsites.net"/>
</applicationInitialization>
</system.webServer>
该应用很可能是 re-compiling Razor 视图,这就是它需要一段时间的原因。您可以 pre-compile Razor 视图,这将有很大帮助 ()。也有像上面注册的 warm-up 路由 pre-populates 缓存会有所帮助。
我正在使用 ASP.NET MVC 5 和 Azure Premium 应用服务,并设置了 AlwaysRunning 选项 "on"。
我为 Web 应用程序创建了一个部署槽,部署了我的新版本,打开了槽 URL,一切都快速而稳定。我切换到生产环境,在切换操作完成后,Web 应用程序运行缓慢,就像我手动部署到 PROD 一样。我不得不等待一分多钟才能让我的应用程序再次运行。根据我读到的内容,我认为应用程序会在交换后预热,但没有成功。
为什么交换后这么慢?甚至没有像身份验证表单那样访问数据库的页面。
更新:切换到 V2 计划(SSD 存储)后,应用程序在不到 2 分钟内重新启动:)
要在交换期间预热站点,您必须配置要命中的路由。在 web.config (link):
中你需要这样的东西<system.webServer>
<applicationInitialization >
<add initializationPage="/warmup-cache" hostName="appinit-warmup.azurewebsites.net"/>
</applicationInitialization>
</system.webServer>
该应用很可能是 re-compiling Razor 视图,这就是它需要一段时间的原因。您可以 pre-compile Razor 视图,这将有很大帮助 (