36 votes

Comment détecter la version IIS en utilisant C #?

Comment détecter la version IIS en utilisant C #?

Mise à jour: je voulais dire à partir d'une application (le scénario consiste en fait à développer un programme d'installation personnalisé qui souhaite vérifier la version de l'IIS installé pour appeler les api appropriés)

36voto

ErTelis Points 221

Vous avez trouvé la réponse ici: texte du lien La méthode fileVersion ne fonctionne pas sous Windows 2008, le fichier exetserv exe est ailleurs, je suppose.

 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);
    }
}
 

Je l'ai testé, il fonctionne parfaitement sous Windows XP, 7 et 2008

30voto

Igal Tabachnik Points 15160

Vous pouvez obtenir ces informations à partir de la variable SERVER_SOFTWARE . Il retournera ce qui suit:

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

etc.

Si vous utilisez ASP.NET, vous pouvez obtenir cette chaîne via

 Request.ServerVariables["SERVER_SOFTWARE"];
 

EDIT: Il semble que vous deviez interroger le registre pour obtenir cette information. Jetez un oeil à cette page pour voir comment.

12voto

Jesper Palm Points 5280

C'est comme ça que je le fais.

 FileVersionInfo verinfo = FileVersionInfo.GetVersionInfo(System.Environment.SystemDirectory + @"\inetsrv\inetinfo.exe");

//Tip... look at verinfo.MajorVersion.
 

6voto

Xn0vv3r Points 7778

Vous pouvez le trouver dans le registre.

Jusqu'à la version 6 d'IIS, vous pouvez le trouver ici:

HKLM \ SYSTEM \ CurrentControlSet \ Services \ W3SVC \ Parameters

Depuis la version 7 ici:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ InetStp

MajorVersion MinorVersion

3voto

Mahmut EFE Points 1040

Vous pouvez utiliser le code ci-dessous

 public static bool IisInstalled()
        {
            try
            {
                using (RegistryKey iisKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\InetStp"))
                {
                    return (int)iisKey.GetValue("MajorVersion") >= 6;
                }
            }
            catch
            {
                return false;
            }
        }
 

Pour plus d’informations, visitez: http://www.java2s.com/Code/CSharp/Windows/IIShelperisIISInstalledIISstateIISversion.htm

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X