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)
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 devrez interroger le registre pour obtenir cette information. Jetez un coup d’oeil à cette page pour voir comment.
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
Voici comment je le fais.
FileVersionInfo verinfo = FileVersionInfo.GetVersionInfo(System.Environment.SystemDirectory + @"\inetsrv\inetinfo.exe"); //Tip... look at verinfo.MajorVersion.
Vous pouvez le trouver dans le registre.
Jusqu’à IIS version 6, vous pouvez le trouver ici:
HKLM \ SYSTEM \ CurrentControlSet \ Services \ W3SVC \ Parameters
Depuis la version 7 ici:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ InetStp
MajorVersion MinorVersion
Il est généralement présenté dans l’en-tête http de la réponse, comme je le sais.
Utilisez System.Web.HttpRequest.ServerVariables (“SERVER_SOFTWARE”). La valeur de retour est une chaîne au format nom / version.
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
Pour le programme d’installation avec des actions personnalisées: dans votre vue Actions personnalisées, vous pouvez transmettre des données à votre classe d’installation client via l’atsortingbut “CustomActionData” dans les propriétés de l’action personnalisée, comme suit: / iisv = “[IISVERSION]”
Vérifier:
Dans .NET 4.5
HttpRuntime.IISVersion
Je voudrais juste vérifier la version du système d’exploitation: xp a IIS 5.1, Server 2003 a IIS 6 et vista / Server 2008 a IIS 7.
Voici comment vérifier la version du système d’exploitation .
Vérifiez l’en-tête X-Powered-By: http://www.http-stats.com/X-Powered-By
Là vous pouvez trouver les valeurs possibles …