如何使用C#检测IIS版本?
更新:我的意思是来自一个winapp(实际上这个场景正在开发一个自定义安装程序,想要检查已安装的IIS的版本以调用相应的api)
在这里找到答案:链接文本 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); } }
我对它进行了测试,它在Windows XP,7和2008上完美运行
您可以从SERVER_SOFTWARE
变量中获取此信息.它将返回以下内容:
Microsoft-IIS/5.0 (Windows 2000)
Microsoft-IIS/5.1 (Windows XP)
Microsoft-IIS/6.0 (Windows 2003 Server)
等等
如果您使用的是ASP.NET,则可以通过此字符串获取
Request.ServerVariables["SERVER_SOFTWARE"];
编辑:似乎您将不得不查询注册表以获取此信息.看看这个页面,看看如何.
我就是这样做的.
FileVersionInfo verinfo = FileVersionInfo.GetVersionInfo(System.Environment.SystemDirectory + @"\inetsrv\inetinfo.exe"); //Tip... look at verinfo.MajorVersion.
你可以在注册表中找到它.
在IIS版本6中,您可以在此处找到它:
HKLM \系统\ CurrentControlSet \服务\ W3SVC \参数
从版本7开始:
HKEY_LOCAL_MACHINE\SOFTWARE \微软\ InetStp
MajorVersion MinorVersion