IIS7 – Search the complete IIS configuration store – in which web.config is your attribute configured
As you know IIS 7.0 configuration system is huge, broad, or whatever you feel like calling it. It no longer just exist in its main configuration file applicationHost.config (like Metabase.XML in IIS 6.0). It can be widely spread in any of the web.config files in the virtual directories, or applications.
Today I had an interesting chat with my colleague on finding a tool to list down what are the web.config files available in a given website. I was suggesting the below code using MWA to just parse the configuration, and print if any VirtualPath of an application (virtual directory) has a file named web.config.
Update: The below sample doesn't list down the web.config's which are there in any physical folder which is not configured as an Application. So, you need to tweak your code a bit. Thanks to Vijay pointing this out.
Sample code snippet in C# listing down all applications, virtual directories available
ServerManager sm = new ServerManager();
foreach (Site s in sm.Sites){Console.WriteLine(s.Name + "\n");
foreach (Application a in s.Applications){foreach (VirtualDirectory v in a.VirtualDirectories){try
{string[] files = Directory.GetFiles(v.PhysicalPath);
for (int i = 0; i < files.Length; i++)if (files[i].EndsWith("web.config"))Console.WriteLine(a + " has " + files[i]);
}catch (Exception e)
{// invalid physical path, so ignore :)
}}}Console.WriteLine("\n");
}