避免修改Web.config的appSettings配置时导致的所有页面重编译
2012-12-12 23:23
453 查看
“对这些重要文件*注1的修改将立即被ASP.NET运行库检测到,并导致所有页面被重新编译。”
——《精通ASP.NET程序设计 Programming Microsoft ASP.NET》第12章
如上面所述,我们在修改配置文件Web.config时,因为所有页面都会重新编译,会导致短暂的服务中断。这里有一个方法可以避免:
将常用且有可能发生改变的配置都放在appSetting节中,如:
<appSettings>
<add key="SMTPServerAddress" value="0.0.0.0"/>
</appSettings>
Web.config中appSettings节有个属性:configSource,这个属性可以指定一个存储appSettings的外部文件路径(只支持相对路径),而这个外部文件的修改是不会引起页面的重新编译的,同时它的改动也能立即被ASP.NET运行库检测到。可谓一举两得。
Web.config中的appSettings的配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings configSource="Settings\WebAppSettings.config" />
</configuration>
外部文件Settings\WebAppSettings.config的内容:
<?xml version="1.0" encoding="utf-8"?>
<appSettings>
<add key="SMTPServerAddress" value="0.0.0.0"/>
</appSettings>
<?xml version="1.0" encoding="utf-8"?><appSettings>
<add key="SMTPServerAddress" value="0.0.0.0"/></appSettings>
*注1、Web.config配置文件
----------------------------------------------------------------------
20091120 UPDATE
后来的事实证明,默认情况下,外部的配置文件修改并不会让修改立即生效,要马上生效要回收该WebApp的应用程序池。
分离配置文件的好处并非如我之前所讲可以避免重新编译,而是使Web.config环境无关,不用为生产服务器和开发服务器维护2份Web.config,有差异的部分都分离出来即可[1]。比如在开发和生产环境使用不同的connectionStrings.config 和 smtp.config,好处是 web.config 更小巧且更易读, 不需要为生产开发两个环境分别配置Web.config。
[1]参考:http://weblogs.asp.net/fmarguerie/archive/2007/04/26/using-configsource-to-split-configuration-files.aspx
来自:http://www.cnblogs.com/zhubo/archive/2008/09/24/using_configsource_to_split_configuration_files.html
——《精通ASP.NET程序设计 Programming Microsoft ASP.NET》第12章
如上面所述,我们在修改配置文件Web.config时,因为所有页面都会重新编译,会导致短暂的服务中断。这里有一个方法可以避免:
将常用且有可能发生改变的配置都放在appSetting节中,如:
<appSettings>
<add key="SMTPServerAddress" value="0.0.0.0"/>
</appSettings>
Web.config中appSettings节有个属性:configSource,这个属性可以指定一个存储appSettings的外部文件路径(只支持相对路径),而这个外部文件的修改是不会引起页面的重新编译的,同时它的改动也能立即被ASP.NET运行库检测到。可谓一举两得。
Web.config中的appSettings的配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings configSource="Settings\WebAppSettings.config" />
</configuration>
外部文件Settings\WebAppSettings.config的内容:
<?xml version="1.0" encoding="utf-8"?>
<appSettings>
<add key="SMTPServerAddress" value="0.0.0.0"/>
</appSettings>
<?xml version="1.0" encoding="utf-8"?><appSettings>
<add key="SMTPServerAddress" value="0.0.0.0"/></appSettings>
*注1、Web.config配置文件
----------------------------------------------------------------------
20091120 UPDATE
后来的事实证明,默认情况下,外部的配置文件修改并不会让修改立即生效,要马上生效要回收该WebApp的应用程序池。
分离配置文件的好处并非如我之前所讲可以避免重新编译,而是使Web.config环境无关,不用为生产服务器和开发服务器维护2份Web.config,有差异的部分都分离出来即可[1]。比如在开发和生产环境使用不同的connectionStrings.config 和 smtp.config,好处是 web.config 更小巧且更易读, 不需要为生产开发两个环境分别配置Web.config。
[1]参考:http://weblogs.asp.net/fmarguerie/archive/2007/04/26/using-configsource-to-split-configuration-files.aspx
来自:http://www.cnblogs.com/zhubo/archive/2008/09/24/using_configsource_to_split_configuration_files.html
相关文章推荐
- 避免修改Web.config的appSettings配置时导致的所有页面重编译
- 修改Web.config的appSettings配置导致所有页面重编译
- 修改Web.config的appSettings配置节时导致的站点页面重编译
- 解决修改Web.config的appSettings配置时导致重编译
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
- 四行代码动态修改web.config文件appsettings配置节内容
- iis7针对不同域名配置不同运行权限,所有共用web.config产生的问题均可以修改根配置文件解决
- c#与vb.net在App_Code里面编译要通过,需要以下web.config的配置
- 获取、修改指定路径web.config appSettings键的值
- 在后台里修改配置文件(web.config)
- Asp.net 配置web.Config 在出错时跳转到相应页面
- 转--Spring.net web.config配置文件(经过整理和修改)
- web.xml配置SpringMVC时导致访问的页面资源不存在,跳转页面时出现404
- Asp.net中Web.config 页面访问按角色授权配置
- 读取、添加、删除、修改配置文件 如(Web.config, App.config)
- web.config配置aspx页面默认引用的namespace
- WCF 4.0 如何编程修改wcf配置,不使用web.config静态配置
- asp.net 自动发送激活邮件,不需修改web.config配置文件