莫言科技

全过程、自定制,轻松实现跨 旅游集散中心自助游

票务与调度系统(独立版) 整合旅游集散中心资源,提供 自助半自助游自定义套餐

面向有志创业的人士、基于云 计算理念提供的创业产品

敬请期待

查看: 2791|回复: 0

【转】asp.net修改配置文件无需重启iis的原因-凯发k8官网下载客户端

[复制链接]
发表于 2011-2-17 16:25:48 | 显示全部楼层 |
原文是:; l6 m) q& v, s: u
大家知道,asp.net中,如果我们修改了配置文件只要把它保存之后,就会立刻反应到程序中,并不需要我们重启iis。甚至我们可以在不停止 iis的情况下,直接替换应用程序下的文件,包括我们编译好的dll文件等,你需要做的只是替换你变换了的文件而已。那么.net是怎么做到的呢?/ ~ ]) f# n4 |) z4 `  |8 e

2 [2 b" u* p2 w这要归功于.net的应用程序域机制,应用程序域是比进程小的程序元单位,也就是说一个进程中可以包含多个应用程序域。而各个域之间是独立的,不共享内存,也就是说各种静态变量等在不同的域之间是不共享的。
  q/ r& l3 c0 r- y4 v
$ x6 t0 z! g- z, z/ s* g$ l有了应用程序域,事情就好办了,当我们更改配置文件或者替换了一个核心的dll之后,这时.net的监控系统会报告我们的所作所为,于是处理 asp.net的进程会为改修后的应用程序重新创建一个应用程序域,这个新的域会把所有的改动都反应进来,这时如果在有request进来,就会使用新的域进行处理,而原有的域会被销毁掉。
9 h0 ?8 x, o* p r2 a
, w# i2 q$ ]; u5 q% z1 \/ d实际上各个应用程序域使用的并不是我们配置在各虚拟目录下的dll文件,对于2.0,3.0,3.5来说真正使用的是c:\windows \microsoft.net\framework\v2.0.50727\temporary asp.net files目录下的文件,所以我们才能直接替换dll等文件。
( c$ @! f* c- g7 @  s; f0 `* ?" ^2 s( {1 a
--测试部分内容从略

||archiver|莫言科技 ( )   

gmt 8, 2020-9-5 20:12 , processed in 0.071291 second(s), 11 queries , wincache on.

powered by x3.2

© 2001-2013

返回列表