asp.net中为什么修改了配置文件后我们不需要重启IIS

本文转载:http://blog.itpub.net/12639172/viewspace-659819/

大家知道,asp.net中,如果我们修改了配置文件只要把它保存之后,就会立刻反应到程序中,

并不需要我们重启IIS。甚至我们可以在不停止IIS的情况下,直接替换应用程序下的文件,包括我们

编译好的dll文件等,你需要做的只是替换你变换了的文件而已。那么.net是怎么做到的呢?

      这要归功于.net的应用程序域机制,应用程序域是比进程小的程序元单位,也就是说一个

进程中可以包含多个应用程序域。而各个域之间是独立的,不共享内存,也就是说各种静态变量

等在不同的域之间是不共享的。

      有了应用程序域,事情就好办了,当我们更改配置文件或者替换了一个核心的dll之后,这时.net

的监控系统会报告我们的所作所为,于是处理asp.net的进程会为改修后的应用程序重新创建一个应用程序域,这个

新的域会把所有的改动都反应进来,这时如果在有Request进来,就会使用新的域进行处理,而原有的

域会被销毁掉。

      实际上各个应用程序域使用的并不是我们配置在各虚拟目录下的dll文件,对于2.0,3.0,3.5来说真正使用的

是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files目录下的文件,

所以我们才能直接替换dll等文件。

时间: 2024-10-28 19:32:14

asp.net中为什么修改了配置文件后我们不需要重启IIS的相关文章

设置-eclipse中svn修改 代码更改后行头显示变化

问题描述 eclipse中svn修改 代码更改后行头显示变化 即代码修改后 行头会显示颜色变化,如下图所示,请问怎么设置

asp.net中TextBox设为只读后的取值问题

在.NET2.0下,当页面上的某个TextBox设置了属性ReadOnly="True"时,通过客户端脚本给其赋值后,在后台代码中访问其Text属性却无法获得该值.经过尝试,发现可以通过如下的方式解决这个问题:     1 不设置ReadOnly属性,通过onfocus=this.blur()来模拟 <asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></a

ASP.NET中基类Page_Load方法后执行的原因

加载对应Load事件和OnLoad方法,对于这个事件,相信大多数朋友都会比较熟悉,用VS.Net生成的页面中的Page_Load方法就是响应Load事件的方法,对于每一次请求,Load事件都会触发,Page_Load方法也就会执行,相信这也是大多数人了解ASP.Net的第一步. Page_Load方法响应了Load事件,这个事件是在System.Web.WebControl.Control类中定义的(这个类是Page和所有服务器控件的祖宗),并且在OnLoad方法中被触发. 很多人可能碰到过这样

关于ASP.NET中,点击按钮后触发事件的顺序

问题描述 publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){stringConStr=@"Server=(local)sqlexpress;DataBase=db_07;Uid=sa;Pwd=a963.";stringcmdtxt="SELECT*FROMtb_07";SqlConnectionCon=newSqlConnecti

ASP.NET中读取修改删除XML文件一些示例

ASP.NET读取XML文件4种方法分析,需要的朋友可以参考下. 方法一 :使用XML控件 代码如下:  代码如下 复制代码 <% @ Page Language="C#"%> <html> <body> <h3><font face="Verdana">读取XML方法一</font></h3> <from runat=server> <asp:Xml id=&qu

ASP.NET中动态修改web.config中的设置项目(CS页代码)

朋友们可以自行测试,我这里都没有问题了,鳖了一上午的问题总算解决了 using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System

ASP.NET中RadioButtonList绑定后台数据后触发点击事件_实用技巧

本文实例为大家分享了RadioButtonList绑定后台数据,触发点击事件的方法 首先前台页面放置一个RadioButtonList 控件 <asp:RadioButtonList runat="server" ID="RadioButtonList1" BorderStyle="None" RepeatColumns="3" CssClass="" RepeatLayout="Flow&

ASP.NET中数据库的操作初步----增加、删除、修改

asp.net|数据|数据库 注意:本文暂时不讲解数据库的数据调出和显示,因为他涉及的东西比较多,所以我们将另外详细讲解.本文主要要讲的是数据库的增加.删除.修改. 一.定义OleDbCommand类型变量:MyCommand 要对数据库进行增加.删除.修改的操作我们还需要根据MyConnectio的类型定义一个OleDbCommand或者SqlCommand对象(请注意如果MyConnection是OleDbConnection类型,那么只能用OleDbCommand:如果MyConnecti

求助asp.net网站修改cs代码后如果不重新生成就起效果?

问题描述 我刚刚接触asp.net,以前做asp的.现在有关问题想问下达人.我现在做了一个网站,用的是页面和代码分类的,但是每此我修改.cs文件后,页面总是不变化,非要重新生成网站后修改才能起作用,可是稍早前写另外一个网站修改.cs文件后就不用重新生成网站,页面刷新后就能看到修改效果,仔细看了两个网站的配置,也没找出在那里有区别,那位兄弟如果知道的话,给个答复吧,谢谢! 解决方案 解决方案二:修改后存盘,在刷新页面就可以了.解决方案三:不生成就显示?好像不行吧反正我是没试过,不生成它怎么生成DL