I wrote this little web app that lists the websites running on the local IIS + virtual directories attached to the websites.
Using the following line I was able to get the HTTP Redirection URL of a virtual directory, if it was set to redirect:
_directoryEntry.Properties["HttpRedirect"].Value.toString()
Which works quite nicely in IIS 6 – but the value is empty when I try my app in an IIS 7 – and I tried switching the application pool to Classic pipeline as well – what has changed in IIS 7 here? And why?
What has changed?: IIS7 has a completely new configuration system similar to .NET’s hierarchical configuration system. Checkout this link for more detail here on what’s changed.
How to get the HttpRedirect value: In C#, rather than using the System.DirectoryServices namespace to access the IIS configuration settings, use the new Microsoft.Web.Administration.dll.
Your code should look something like this example from IIS.net:
You can actually do quite a lot with the new Microsoft.Web.Administration.dll. Checkout Carlos Ag’s blog here for some ideas.
Two quick notes:
Hope this helps!