Does anybody know how to programmatically get the sites list and virtual dirs in IIS 7?
Hold down the Windows key, press the letter X, and then click Control Panel. Click Administrative Tools, and then double-click Internet Information Services (IIS) Manager.
In the Internet Information Services window, expand server name (where server name is the name of the server). Right-click the Web site that you want (for example, Default Web Site), point to New, and then click Virtual Directory. On the Welcome to the Virtual Directory Creation Wizard page, click Next.
Virtual directories and applications are now separate objects, and they exist in a hierarchical relationship in the IIS configuration schema. Briefly, a site contains one or more applications, an application contains one or more virtual directories, and a virtual directory maps to a physical directory on a computer.
Check out this post - seems to be a brand-spanking new management API in the Microsoft.Web.Administration
namespace:
http://blogs.msdn.com/carlosag/archive/2006/04/17/MicrosoftWebAdministration.aspx
Here's a quick graphical overview from that blog post:
And here's a "The Gu" post on Cool new IIS7 Features and APIs
Something like this will find all the sites, their application and their virtual directories in your IIS7 server:
static void Main(string[] args) { 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("\t\tVirtual Dir: {0}", virtDir.Path); } } } Console.ReadLine(); }
One important caveat to using the Microsoft.Web.Administration assembly is the code has to be running on a machine that has IIS7 installed.
When I was developing a system to load IIS7 sites into a webpage on my windows XP machine I discovered this limitation. The API is great, I just wished I could have used it.
Control IIS 7 server from Windows 2003 server programmatically
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With