How to detect IIS version using C#?

后端 未结 11 1723
栀梦
栀梦 2020-11-30 02:17

How to detect IIS version using C#?

Update: I meant from a winapp (actually the scenario is developing a custom installer that wants to check the version of the inst

相关标签:
11条回答
  • 2020-11-30 02:49

    Use System.Web.HttpRequest.ServerVariables("SERVER_SOFTWARE"). The return value is a string in the format name/version.

    0 讨论(0)
  • 2020-11-30 02:50

    Check the X-Powered-By header: http://www.http-stats.com/X-Powered-By

    There you can find the possibly values...

    0 讨论(0)
  • 2020-11-30 02:51

    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

    0 讨论(0)
  • 2020-11-30 02:54

    U can find it in the registry.

    Up to IIS version 6 you can find it here:

    HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters

    Since version 7 here:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp

    MajorVersion MinorVersion

    0 讨论(0)
  • 2020-11-30 02:58

    You can get this information from the SERVER_SOFTWARE variable. It will return the following:

    Microsoft-IIS/5.0 (Windows 2000)
    Microsoft-IIS/5.1 (Windows XP)
    Microsoft-IIS/6.0 (Windows 2003 Server)

    etc.

    If you're using ASP.NET, you can get this string via

    Request.ServerVariables["SERVER_SOFTWARE"];
    

    EDIT: It seems that you will have to query the registry to get this information. Take a look at this page to see how.

    0 讨论(0)
  • 2020-11-30 03:00

    It is usually presented in http header of response, as i know.

    0 讨论(0)
提交回复
热议问题