之前博问中讨论过类似的问题:asp.net mvc网站回收后第一次运行奇慢,大家是怎么解决的?,但场景不一样。IIS的应用程序初始化(Application Initialization)特性不适用于更新dll的场景。
目前我觉得最有效的方法就是采用负载均衡,也是我们正在使用的方法。
更新时,依次将负载均衡中的服务器摘下->更新->预热->挂上。
楼上的是个方法,甚至只需要修改域名指向就可以,但是这可能会造成状态丢失。
如果不是页面的修改,可以考虑使用插件化的方式来设计程序结构,使用策略模式,挂载同一 dll 的多个版本,通过数据库配置的修改在运行时切换加载的 dll。
请问怎么解决是最好的呢?