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)

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:

http://johnbarshinger.wordpress.com/2006/10/27/how-to-modify-the-vs2005-installer-to-set-the-asp-net-version-and-create-application-pools/

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 …