从非root web.config文件中读取值

时间:2013-06-14 13:05:10

标签: asp.net web-config global-asax directory directory-structure

我的网站以这种方式构建:

  • 根目录
    • 街机
      • 的Default.aspx
      • 的web.config
    • 的Default.aspx
    • 的web.config

我有一个访问的方法Method1()

System.Configuration.ConfigurationManager.AppSettings["Total_Unique_Plays_Required_For_High_Score_Board"]

此值存在于root/Arcade/Web.config文件中,但不存在于root/web.config文件中。

当我从Method1()目录中的页面执行/arcade时,它可以正常工作。但是,当我从global.asax执行此方法作为定时事件时,它会在根web.config文件中搜索值并抛出System.NullException

是否有人知道如何指定搜索root/arcade/web.config文件而不是root/web.config文件中的值?

1 个答案:

答案 0 :(得分:3)

您可以先打开web.config文件。

所以调用它会加载你的子文件;请注意,您提供了包含web.config的文件夹的路径,而不是实际的配置文件。

var config = WebConfigurationManager.OpenWebConfiguration("~/Arcade");

您现在可以获取您的值,例如:

string MyValue  = config.AppSettings.Settings["MySetting"].Value;

您还可以致电:

获取应用设置列表
KeyValueConfigurationCollection appSettings = config.AppSettings.Settings;