我试图使用标准的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,请尝试删除/添加。