How to detect IIS version using C#?

Found the answer here: link text
The fileVersion method dosesn’t work on Windows 2008, the inetserv exe is somewhere else I guess.

public Version GetIisVersion()
{
    using (RegistryKey componentsKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\InetStp", false))
    {
        if (componentsKey != null)
        {
            int majorVersion = (int)componentsKey.GetValue("MajorVersion", -1);
            int minorVersion = (int)componentsKey.GetValue("MinorVersion", -1);

            if (majorVersion != -1 && minorVersion != -1)
            {
                return new Version(majorVersion, minorVersion);
            }
        }

        return new Version(0, 0);
    }
}

I tested it, it works perfectly on Windows XP, 7 and 2008

Leave a Comment