【发布时间】:2014-03-07 13:54:15
【问题描述】:
我第一次需要不间断地更新服务。到目前为止,我不得不停止 IIS 上的应用程序,然后替换文件,然后重新启动应用程序。我需要能够即时将此服务热交换为新服务。我只需要在现有方法中添加新方法或正确代码。我绝不会更改当前存在的方法参数。如果需要,我将创建全新的方法,我的应用程序将慢慢更改为指向新方法。
我现在的问题是该服务使用其他服务,并且它们一起形成了一个非常高安全性的系统,如果我停止该服务超过 8 秒,那么当前使用该应用程序的每个人都会被踢出。其他服务在内部确实与该服务在网络内进行通信,以及对用户在我们的任何应用程序上执行的每一个操作进行身份验证。所以我们有 WAN 和 LAN 呼叫。因为它是一个 3 步身份验证(如果我们集成了联合凭据,可能需要 4 个之后的身份验证),如果一个步骤被关闭,那么一切都会被切断。
我想知道是否有解决方案?
我正在考虑连接到 2 个服务的前端服务。一个是实时服务,另一个是备份。当我要更新时,我切断了 Live,前端将检测到 Live 服务上没有连接,并将落在备份服务上。然后我更换直播并再次上线,前端将再次开始阅读直播。几个小时后,我可以用实时副本替换备份以进行下一次更新。 无论如何,这仍然给我带来了前端每次都需要实现新服务的问题。
【问题讨论】:
-
也就是说,您将无法在没有任何中断的情况下进行热部署。部署更新文件后,至少您需要循环目标服务所在的应用程序池。
-
谢谢,但我会先尝试@davidb 提示。与 IIS 重定向相比,关闭应用程序池非常慢