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应用程序脱机.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。