日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET一个网站内存放多个config文件(Web.Config文件中configSource 的用法

發(fā)布時(shí)間:2025/3/15 asp.net 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET一个网站内存放多个config文件(Web.Config文件中configSource 的用法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ASP.NET一個(gè)網(wǎng)站內(nèi)存放多個(gè)config文件(Web.Config文件中configSource 的用法) 2011年08月10日 星期三 上午 11:41

每個(gè)網(wǎng)站里都會(huì)有一個(gè)web.config文件。修改Web.config文件會(huì)導(dǎo)致IIS重啟,就是隨意的回車一下也會(huì)導(dǎo)致重啟。微軟建議,不要將需要修改的配置內(nèi)容保存在web.config中。而是單獨(dú)放在一個(gè)config中。但是對(duì)于單獨(dú)存放的config文件,怎么來對(duì)其進(jìn)行修改和讀取呢? 例如 可以指定 web.config 中的 appSetting 單獨(dú)放在 一個(gè) 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="中國(guó)叉叉網(wǎng)"/>
??? <add key="SiteDomain" value="chinaxx.com"/>
? </appSettings>
? <connectionStrings/>
? <system.web>
??? <compilation debug="false">
??? </compilation>
??? <authentication mode="Windows" />
? </system.web>
</configuration>

二,下面拆分成兩個(gè)config文件

1)第一個(gè)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)第二個(gè)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="中國(guó)叉叉網(wǎng)"/>
<add key="SiteDomain" value="chinaxx.com"/>
</appSettings>

那么如何讀取呢?

Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
string SiteName = config.AppSettings["SiteName"];

如果用上面這種方法會(huì)報(bào)錯(cuò):CS0122: “System.Configuration.ConfigurationElement.this[System.Configuration.ConfigurationProperty]”不可訪問,因?yàn)樗鼙Wo(hù)級(jí)別限制
正確的寫法是:

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();

總結(jié):經(jīng)過拆分后,修改config.config不會(huì)導(dǎo)致IIS重啟。

說明:我的config.config文件和webconfig在同一級(jí)目錄,另外,我這里叫config.config,你可以隨意改變,比如叫app.config。

注意config.config的寫法。

一旦在web.config中的appSettings節(jié)點(diǎn)中添加configSource,就不能再添加Add節(jié)點(diǎn)了。也就是說你不能在webconfig里放一部分<add>,然后再config.config里在放一部分<add>

修改時(shí),訪問的節(jié)點(diǎn)必須存在否則會(huì)報(bào):未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例。

參考:http://tangzhongxin.blog.163.com/blog/static/8921961201031711174015/

http://bbs.51aspx.com/showtopic-1923.html

總結(jié)

以上是生活随笔為你收集整理的ASP.NET一个网站内存放多个config文件(Web.Config文件中configSource 的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。