为什么在我进行部署槽交换时 azure 会重新启动网站?

Why would azure be restarting website when i do a deployment slot swap?

我在 Azure 网站上有一个 .net 4.5 网站 运行。我已经设置了暂存部署。我预热了两个站点,然后 运行 交换过程(来自 Azure 门户和 Azure powershell)。无论我尝试什么,交换过程都会重新启动我的网站(两个),它们需要大约 3 分钟才能启动。

我的印象是部署交换应该保留网站 "warm" 并且没有停机时间?我的网站大约有 3 分钟无法使用!

据我所知,生产槽和暂存槽具有相同的应用程序设置等。

如有任何建议或指点,我们将不胜感激。

当我使用粘性应用程序设置选项时,我已经 运行 进入了这个。我的假设是它进行了交换,但随后必须将设置更改为粘性值,因此就像您在 web.config 中进行更改或自己更改门户中的值一样需要重新启动应用程序。

我还没有找到关于此的任何官方文档,但如果您设置了粘性插槽,我相信这是罪魁祸首。如果是这种情况,我不确定是否可以对此做些什么。

杰夫是对的。当有为插槽定义的粘性应用程序设置或连接字符串时,网站的工作进程将在交换期间重新启动。在这种情况下发生的操作顺序是这样的:

  1. 将生产槽中的粘性设置应用到当前位于暂存槽中的站点工作进程。这会导致工作进程重新启动;
  2. 通过在站点应该 运行;
  3. 的每个 VM 实例上向其根 URL 发出 http 请求,在暂存槽中预热站点的工作进程
  4. 在插槽之间交换工作进程。现在预热的工作进程在生产槽中并正在接受生产流量;
  5. 将暂存槽中的粘性设置应用到当前处于暂存槽中的工作进程。此时这是 "used to be in production" 工作进程。此配置更改会导致该工作进程重新启动,但此时它不会占用任何生产流量。