访问Webconfig中的appSettings密钥



我试图使用标准的XML文档读取来访问这个web.config中的键,但我似乎无法访问每个键。有谁能对此有所了解吗。我不能像往常一样通过configsettings访问它,因为我试图在IIS中查找每个人,而不是只查找一个。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <httpRedirect enabled="false" />
</system.webServer>
<appSettings>
    <add key='expires' value='expiry'/>
    <add key='createdby' value='created'/>
    <add key='DateCreated' value='date'/>
</appSettings>
</configuration>

我需要的是应用程序中设置为"过期"的密钥。

我的C#是:

var items = drpVD.Items;
            items.Clear();
            ServerManager mgr = new ServerManager();
            foreach (Site s in mgr.Sites)
            {
                //Console.WriteLine("Site {0}", s.Name);
                foreach (Application app in s.Applications)
                {
                    //Console.WriteLine("tApplication: {0}", app.Path);
                    foreach (VirtualDirectory virtDir in app.VirtualDirectories)
                    {
                        //Console.WriteLine("ttVirtual Dir: {0}", virtDir.Path);
                        String WhichDir = s.Name + " - " + virtDir.Path + " - " + virtDir.PhysicalPath;
                        if (virtDir.Path != "/")
                        {
                            string fileName = virtDir.PhysicalPath + @"web.config";
                            XmlDocument doc = new XmlDocument();
                            doc.Load(fileName);
                            List<string> categories = new List<string>();
                            XmlNodeList nList = doc.SelectNodes("/configuration/appSettings/add/key");
                            foreach (XmlNode node in nList)
                            {
                                categories.Add(node.Value);
                            }
                            items.Add(WhichDir);
                        }
                    }
                }

提前谢谢你,在我看来它是正确的,但我有一种感觉,我在SelectNodes上犯了一个错误,我的大脑似乎无法修复它!

为什么不使用ConfigurationManager,例如:

var settings = ConfigurationManager.AppSettings;
for (int i = 0; i < settings.Count; i++)
{
    categories.Add(settings[i]);
}

关于SelectNodes,请尝试删除/添加。

最新更新