Config文件修改与IIS重启应用程序域(转)
2013-03-07 15:03
961 查看
1. machine.config 文件中的restartOnExternalChanges属性,指定对外部配置包含文件进行更改后是否需要重新启动应用程序。设置为false即不会重启应用程序。注意是外部文件,而非web.config文件本身。
修改web.config肯定还会重新启动应用程序域的,Web还是会断线,有点像百货公司把大家都赶出来,再开门让大家进来。
configSource属性对web.config进 行拆分。如
<profile configSource="profile.config" restartOnExternalChanges="true" />
默认情况下,如果特定配置节的 config文件内容更改,iis是察觉不到的,所以不会重启程序池。 假如你需要在 特定配置节config文件修改后能让iis自动察觉到并进行重启, 可以利用 RestartOnExternalChanges属性,设置为true。
2. 另外其他会重启应用程序的条件
上传DLL 重启服务器 重启iis 有目录被删除时
3. 关于拆分web.config文件分而治之从以下几点考虑:
a. 经常发生变化
某些配置节我们在开发时经常要修改或更新,如果能单独拉出来进行配置,这样修改时就不必碰web.config。 不同环境下的web.config都引用了同一个配置节config,所以这样的修改只需要做一次,而不必去修改所有环境的web.config。
b. 内容行数特别多
有时候web.config里有些配置节 都是一大坨一大坨的,影响了web.config整体的审美观。 我们完全可以把这些大 坨的配置节内容单独抽取出来, 这样一来,web.config就简洁多了,也便于阅读 。 c. 不同环境下,配置节内容是不一样的
我们经常会有这样的配置节, 对于这种情况,我们完全可以考虑拆分出来, 并且生成不同环境下的配置文件。 而不同环境下的web.config只要引用对应环境的配置节文件即可。 即使环境发生了变化, 我们也不需要去动web.config, 只要去修改相应环境下配置节文件即可。
当然,以上这三种特征不是互斥的 ,很可能某一配置节含有以上两种或三种特征。这些配置节更需要我们认真对待,通过多重策略来进行拆分。
4. 分而治之怎么能各得其所,命名规则上来区分
如果web.config很复杂, 那拆分后的结果可能会多出一堆***.config文件, 所以我们需要一套简单有效的命名规范来管理好这么多配置文件。
a. Web.config:在不同环境下的文件 可以命名为Web.local.config, Web.beta.config, Web.release.config
b. 特征1,2配置节文件: 可以取配置节的名字来命名文件, 比如profile.config, 规范一下应该是Web.profiling.config, 类似还有Web.httpHanders.config, Web.httpModules.config等等。
c. 特征3配置节文件: 假如有个dbConfig配 置节(不同环境下的数据库连接配置), 我们可以命名为 Web.dbConfig.local.config, Web.dbConfig.beta.config, Web.dbConfig.release.config。
通过分而治之的管理和规范的命名, 我们就可以轻松地进行配置管理,而不必整天面对那一大坨 看似一样 又有些不太一样配置节点。1-1-6*2-3-2*6-3*8-9
修改web.config肯定还会重新启动应用程序域的,Web还是会断线,有点像百货公司把大家都赶出来,再开门让大家进来。
configSource属性对web.config进 行拆分。如
<profile configSource="profile.config" restartOnExternalChanges="true" />
默认情况下,如果特定配置节的 config文件内容更改,iis是察觉不到的,所以不会重启程序池。 假如你需要在 特定配置节config文件修改后能让iis自动察觉到并进行重启, 可以利用 RestartOnExternalChanges属性,设置为true。
2. 另外其他会重启应用程序的条件
上传DLL 重启服务器 重启iis 有目录被删除时
3. 关于拆分web.config文件分而治之从以下几点考虑:
a. 经常发生变化
某些配置节我们在开发时经常要修改或更新,如果能单独拉出来进行配置,这样修改时就不必碰web.config。 不同环境下的web.config都引用了同一个配置节config,所以这样的修改只需要做一次,而不必去修改所有环境的web.config。
b. 内容行数特别多
有时候web.config里有些配置节 都是一大坨一大坨的,影响了web.config整体的审美观。 我们完全可以把这些大 坨的配置节内容单独抽取出来, 这样一来,web.config就简洁多了,也便于阅读 。 c. 不同环境下,配置节内容是不一样的
我们经常会有这样的配置节, 对于这种情况,我们完全可以考虑拆分出来, 并且生成不同环境下的配置文件。 而不同环境下的web.config只要引用对应环境的配置节文件即可。 即使环境发生了变化, 我们也不需要去动web.config, 只要去修改相应环境下配置节文件即可。
当然,以上这三种特征不是互斥的 ,很可能某一配置节含有以上两种或三种特征。这些配置节更需要我们认真对待,通过多重策略来进行拆分。
4. 分而治之怎么能各得其所,命名规则上来区分
如果web.config很复杂, 那拆分后的结果可能会多出一堆***.config文件, 所以我们需要一套简单有效的命名规范来管理好这么多配置文件。
a. Web.config:在不同环境下的文件 可以命名为Web.local.config, Web.beta.config, Web.release.config
b. 特征1,2配置节文件: 可以取配置节的名字来命名文件, 比如profile.config, 规范一下应该是Web.profiling.config, 类似还有Web.httpHanders.config, Web.httpModules.config等等。
c. 特征3配置节文件: 假如有个dbConfig配 置节(不同环境下的数据库连接配置), 我们可以命名为 Web.dbConfig.local.config, Web.dbConfig.beta.config, Web.dbConfig.release.config。
通过分而治之的管理和规范的命名, 我们就可以轻松地进行配置管理,而不必整天面对那一大坨 看似一样 又有些不太一样配置节点。1-1-6*2-3-2*6-3*8-9
相关文章推荐
- Config文件修改与IIS重启应用程序域
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
- VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)
- 【转】 VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
- 修改依赖缓存配置 web.config ,不重启应用程序域!
- asp.net中为什么修改了配置文件后我们不需要重启IIS
- IIS 之 通过 Web.config 修改文件上传大小限制设置方法
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启
- IIS网站文件结构修改导致服务器重启的解决办法
- 发布服务器上IIS修改web.config文件,提示没有权限。
- 图解修改IIS web.config配置文件增设置默认文档的方法
- VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)
- IIS网站文件结构修改导致服务器重启的解决办法
- asp.net中为什么修改了配置文件后我们不需要重启IIS
- C#项目实例中读取并修改App.config文件
- 修改app.config不能马上生效(只有重启应用程序之后才能生效)的根本原因
- 修改web.config文件的数据库连接字…
- asp.net修改web.config文件
- asp.net读取并修改指定config文件