加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – 更新dll而不停止服务

发布时间:2020-12-14 01:41:03 所属栏目:Windows 来源:网络整理
导读:我想更新服务器进程的dll而不停止服务.我怎么做? 有点像asp.net自动拿起放在bin文件夹中的新dll. Asp.Net使用一种名为 shadow copy的技术 如果将更新的dll复制到应用程序的bin子目录中,则ASP.NET运行时将识别出有要执行的新代码.由于ASP.NET无法将dll交换到
我想更新服务器进程的dll而不停止服务.我怎么做?
有点像asp.net自动拿起放在bin文件夹中的新dll.
Asp.Net使用一种名为 shadow copy的技术

如果将更新的dll复制到应用程序的bin子目录中,则ASP.NET运行时将识别出有要执行的新代码.由于ASP.NET无法将dll交换到现有的AppDomain中,因此它会启动一个新的AppDomain.旧的应用程序域是“排除停止”,即现有的请求被允许完成执行,一旦完成,AppDomain就可以卸载.新的AppDomain从新的代码开始,并开始采取所有新的请求.

通常,当dll加载到进程中时,进程会锁定dll,并且不能覆盖磁盘上的文件.但是,AppDomains有一个称为Shadow Copy的功能,允许程序集在磁盘上保持解锁和可替换.

运行时初始化ASP.NET,并为bin目录启用Shadow Copy. AppDomain将在将dll锁定并加载到内存之前将其所需的任何dll从bin目录复制到临时位置. Shadow Copy允许我们在更新过程中覆盖bin目录中的任何dll,而不使Web应用程序脱机.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读