如何避免由于更新web应用下的bin的dll文件导致web应用重启(留存)

 .net web应用有个很不好的特性,即IIS会监控应用下的文件夹和文件,如果更新了web应用的bin下的

dll(新增文件,删除文件,更新文件)、修改了web.config文件,都会

导致web应用重新启动,这对经常使用的系统来讲不是很好。如何避免呢,

以下是个思路共大家参考,希望有志之士来实验并实现它。

 1,既然web应用监控 bin,那么我们不把我们的dll放在bin下,bin下只放网站

自己的dll。

 2,不放在bin下,就要解决程序集加载的问题

 3,我们的程序集大多是动态加载的,可以在这里入手

 4,需要考虑的地方

     - 找到所有动态加载程序集的地方,现在知道的地方, panfis.dll 中的 ClientRequestHandler类,

       工作流页面 panflow.aspx的后台代码 ;pansoft,.dll中的classfactory 类

       其他的可以通过查找 Load 关键字来查找。

     - 考虑使用不同的加载方式 Load,LoadFrom 和 LoadFile,这都是Assembly 类的静态方法,

       这3中方式略有差别,主要体现在,对dll的寻找路径,是否加载依赖的程序集,是否对同名

的程序集重复加载,加载时,不同的load方法如何查找依赖的程序集。 这些差别都会影响到具体的实现。

     -还要考虑 .net 是否缓存了程序集,我们的程序是否缓存了程序集。如果缓存了,怎么保证

       更新后,立即生效。(classfactory类和ClientRequestHandler缓存了类型和类型实例)。

     - 还要实验在应用运行期间能否覆盖dll(也许会被应用锁定,不让更新),如果是的话,如何解决。

 

大家可以课下研究,不仅仅对提高自己,能更深刻了解.net的底层运行机制有,如果能实现,对

项目也是个很大的贡献。

转载于:https://www.cnblogs.com/senline/archive/2012/09/11/2680879.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值