在生产中长期困扰这个问题,并且阅读了我能找到的所有内容(例如this或this或that)之后,我进行了简单的测试。
单击交换时,我将收到有关插槽重新启动的通知(每个插槽至少重新启动一次)。
为什么会这样呢?
更新:
在研究Mohit的答案之后,我需要更多说明。
我们以Application_Start方法发送通知,如果我理解正确的话,该方法由AppInit事件触发。
我不理解您所解释的行为。该顺序似乎对确保没有停机时间非常重要,但是您说不一定按该顺序进行。为什么需要重新启动生产槽的应用程序域?为什么用户会因为该网站已关闭而感到烦恼(不应该这样)?
什么是“新交换”功能?“旧交换”有什么区别?对于我的测试,我只是使用门户进行了交换。
您提到“新交换”在交换之前暂停。我想这只是意味着它等待applicationInitialization完成(例如/上的HTTP 200)?
从昨天开始,我做了更多测试。在Application_Start方法中,我添加了一些Thread.Sleep来延长应用程序的启动时间。但是,当我调换产品时,无论是分期还是生产,都不会停机。我是否应该至少在应用程序启动期间经历登台停机时间?这是否意味着经过预热然后与生产交换的插槽实际上是另一个既未登台也不生产的临时插槽?