如何使用C#检测IIS版本?

如何使用C#检测IIS版本?

更新:我的意思是从一个winapp(实际上情况是开发一个自定义安装程序,想检查安装的IIS的版本,以调用适当的API)

您可以从SERVER_SOFTWAREvariables中获取这些信息。 它会返回以下内容:

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

等等

如果你使用ASP.NET,你可以通过获取这个string

 Request.ServerVariables["SERVER_SOFTWARE"]; 

编辑:看来,你将不得不查询registry来获取这些信息。 看看这个页面 ,看看如何。

在这里find答案: 链接文本 fileVersion方法剂量不能在Windows 2008上工作,inetserv EXE是我猜的其他地方。

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

我testing了它,它在Windows XP,7和2008上完美工作

这是我如何做到这一点。

 FileVersionInfo verinfo = FileVersionInfo.GetVersionInfo(System.Environment.SystemDirectory + @"\inetsrv\inetinfo.exe"); //Tip... look at verinfo.MajorVersion. 

你可以在registry中find它。

直到IIS版本6,你可以在这里find它:

HKLM \系统\ CurrentControlSet \服务\ W3SVC \参数

从这里版本7开始:

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ InetStp

MajorVersion MinorVersion

正如我所知,它通常在响应的http标题中提供。

使用System.Web.HttpRequest.ServerVariables(“SERVER_SOFTWARE”)。 返回值是一个格式为name / version的string。

你可以使用下面的代码

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

详细信息请访问: http : //www.java2s.com/Code/CSharp/Windows/IIShelperisIISInstalledIISstateIISversion.htm

对于具有自定义操作的安装程序:在自定义操作视图中,可以通过自定义操作的属性中的“CustomActionData”属性将数据传递到客户安装程序类,如下所示:/ iisv =“[IISVERSION]”

检查:

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

在.NET 4.5中

 HttpRuntime.IISVersion 

我只是检查操作系统的版本:xp有IIS 5.1,Server 2003有IIS 6,Vista / Server 2008有IIS 7。

以下是如何检查操作系统的版本 。

检查X-Powered-By标题: http : //www.http-stats.com/X-Powered-By

在那里你可以find可能的值…