本文转载: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等文件。

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

  1. Eclipse中避免修改后台代码后手动install和重启

      之前每次修改maven多模块项目后都得重新执行mvn install ,install完还得重启jetty/tomcat服务器,非常浪费   时间,其实修改代码后可以不用执行install,也不用 ...

  2. linux中为何每次修改完配置文件后都需要重新加载配置文件

    1.大家刚接触linux时,可能会有这样的疑问:为什么每次修改完配置文件之后,总是要重新加载配置文件才能生效?或者需要重启后才能生效?   之前听过一个解释是这样子的:   "修改了文件内容 ...

  3. Asp.net中的web.config配置文件(转)

    最近开始学习.NET的开发,首先碰到的就是web.config的配置问题,把网上大虾的资料转发记录一下,以备不时之需. 原贴路径如下:http://blog.csdn.net/hbqhdlc/arti ...

  4. samba修改smb.conf后,不需要重启服务,就可生效

    在修改完smb.conf后,不需要重启服务.在Centos7.3与Ubuntu18.04上验证都没有问题. 猜测可能的原因:samba是在客户端进行连接时,smb服务程序读取smb.conf配置文件信 ...

  5. 让asp.net程序在修改web.config后不重启

    默认情况下web.config修改后,asp.net程序会被重启.为了防止程序重启,要修改machine.config 文件. machine.config默认在C:\WINDOWS\Microsof ...

  6. PHP 修改配置文件后重启命名

    centosPHP配置文件路径: /etc/php.ini 修改完配置文件后需要重启php服务: systemctl restart php-fpm

  7. MySQL服务器修改主机名后问题解决

    1.单机MySQL主机名修改 今天无事看到自己的主机名不对,于是改了一下,以便区分服务器,那只重启MySQL时出现下面错误: MySQL manager or server PID file coul ...

  8. Asp.net中web.config配置文件详解(一)

    本文摘自Asp.net中web.config配置文件详解 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信息,包括数据库连接字符.身份安全验证等,可以出现在Asp. ...

  9. ASP.NET中的配置文件

    ASP.NET中的配置文件 原创 2014年10月13日 08:15:27 1199   在机房收费系统的时候曾经应用过配置文件,当时也就那么一用对配置文件了解的不是很透彻,下面就来总结一下有关配置文 ...

随机推荐

  1. WPS目录制作方法

    学校安排我进行电子技术校本教材的后期制作,汇总完全部文字后,需要编辑一个全书目录,进过一番摸索,使用WPS2009圆满完成了此次任务,愿与诸君共享. 1.显示大纲工具栏 打开“视图”——“工具栏”—— ...

  2. [转载]用c写PHP的扩展接口(php5,c++)

    原文[http://bugs.tutorbuddy.com/php5cpp/php5cpp/] 第1节. 开始之前 开始前,我要说明:这篇文章所描述的主要是在UNIX的PHP环境上的. 另外一点我要说 ...

  3. C#语法中一个问号(?)和两个问号(??)的运算符是什么意思?

    (1).C#语法中一个个问号(?)的运算符是指:可以为 null 的类型. MSDN上面的解释: 在处理数据库和其他包含不可赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型以及日期类型的功 ...

  4. HDU 1176 免费馅饼(DP)

    点我看题目 题意 : 中文题.在直线上接馅饼,能接的最多是多少. 思路 :这个题其实以前做过.....你将这个接馅饼看成一个矩阵,也不能说是一个矩阵,反正就是一个行列俱全的形状,然后秒当行,坐标当列, ...

  5. 练习PYTHON之EVENTLET

    以下是重点,要会运用: eventlet是一个用来处理和网络相关的python库函数,而且可以通过协程来实现并发,在eventlet里,把“协程”叫做 greenthread(绿色线程).所谓并发,就 ...

  6. Linux下删除大量文件

    主要参考了http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux 首先建立50万个文件 ➜ test ...

  7. 【HDOJ】1241 Oil Deposits

    经典的BFS. #include <stdio.h> #include <string.h> #define MAXNUM 105 #define MAXROW 105 #de ...

  8. 结构体 row_prebuilt_t

    typedef struct row_prebuilt_struct row_prebuilt_t; /** A struct for (sometimes lazily) prebuilt stru ...

  9. apache开源项目--Ignite

    Apache Ignite 内存数组组织框架是一个高性能.集成和分布式的内存计算和事务平台,用于大规模的数据集处理.Ignite 为应用和不同的数据源之间提供一个高性能.分布式内存中数据组织管理的框架 ...

  10. ruby编程语言-学习笔记3(第4章 表达式和操作符)

    4.6 操作符 了解优先级很重要 位移操作符 (0b1011)<< 1       #   ==> "10110"      11 << 1 = 22 ...