ASP.NET一个网站内存放多个config文件(Web.Config文件中configSource 的用法
2011-12-22 15:05
531 查看
ASP.NET一个网站内存放多个config文件(Web.Config文件中configSource 的用法)
2011年08月10日 星期三 上午 11:41
2011年08月10日 星期三 上午 11:41
每个网站里都会有一个web.config文件。修改Web.config文件会导致IIS重启,就是随意的回车一下也会导致重启。微软建议,不要将需要修改的配置内容保存在web.config中。而是单独放在一个config中。但是对于单独存放的config文件,怎么来对其进行修改和读取呢? 例如 可以指定 web.config 中的 appSetting 单独放在 一个 config.config 文件中。通过 configSource 来指定。 一、原来的web.config文件: <?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="CacheTimeInfo" value="30" /> <add key="CacheTimeNews" value="10" /> <add key="CacheTimeProduct" value="60" /> <add key="CacheTimeTrade" value="5" /> <add key="SiteName" value="中国叉叉网"/> <add key="SiteDomain" value="chinaxx.com"/> </appSettings> <connectionStrings/> <system.web> <compilation debug="false"> </compilation> <authentication mode="Windows" /> </system.web> </configuration> 二,下面拆分成两个config文件 1)第一个config文件:web.config <?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings configSource="config.config" /> <connectionStrings/> <system.web> <compilation debug="false"> </compilation> <authentication mode="Windows" /> </system.web> </configuration> 2)第二个config文件:config.config <?xml version="1.0" encoding="utf-8"?> <appSettings> <add key="CacheTimeInfo" value="30" /> <add key="CacheTimeNews" value="10" /> <add key="CacheTimeProduct" value="60" /> <add key="CacheTimeTrade" value="5" /> <add key="SiteName" value="中国叉叉网"/> <add key="SiteDomain" value="chinaxx.com"/> </appSettings> 那么如何读取呢? Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); string SiteName = config.AppSettings["SiteName"]; 如果用上面这种方法会报错:CS0122: “System.Configuration.ConfigurationElement.this[System.Configuration.ConfigurationProperty]”不可访问,因为它受保护级别限制 正确的写法是: Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); string SiteName = config.AppSettings.Settings["SiteName"].Value; 下面是修改: Configuration cfg = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); AppSettingsSection appSetting = cfg.AppSettings; appSetting.Settings["SiteName"].Value = "changed by application"; //修改config.config中SiteName的值 cfg.Save(); 总结:经过拆分后,修改config.config不会导致IIS重启。 说明:我的config.config文件和webconfig在同一级目录,另外,我这里叫config.config,你可以随意改变,比如叫app.config。 注意config.config的写法。 一旦在web.config中的appSettings节点中添加configSource,就不能再添加Add节点了。也就是说你不能在webconfig里放一部分<add>,然后再config.config里在放一部分<add> 修改时,访问的节点必须存在否则会报:未将对象引用设置到对象的实例。 参考:http://tangzhongxin.blog.163.com/blog/static/8921961201031711174015/ http://bbs.51aspx.com/showtopic-1923.html |
相关文章推荐
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
- 微软ASP.NET网站部署指南(3):使用Web.Config文件的Transformations
- ASP.NET 配置文件 configSource 的用法
- asp.net 通过web.config 文件设置网站的mime类型
- ASP.NET配置文件Web.config用法详解
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启
- ASP.NET通过配置Web.config文件提高手动绑定数据库效率的一个简单方法,不用每次手动连接数据库地址,或者数据库地址变更时只改一处即可。
- asp.net的web.config文件中customErrors标记的用法
- ASP.NET配置文件Web.config用法详解
- ASP.NET 配置文件 configSource 的用法
- ASP.NET配置文件Web.config详细解释-
- C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
- [转]ASP.NET Web.config配置文件的基本使用方法
- ASP.NET数据库连接字符串写在config.web配置文件中(2)
- ASP.NET配置文件Web.config 详细解释
- ASP.NET配置文件Web.config 详细解释
- 认识ASP.NET配置文件Web.config
- 认识ASP.NET配置文件Web.config
- Asp.net Forums 论坛web.config文件详解