如何以编程方式确定已安装的IIS版本

Ste*_*eim 9 .net iis version-detection

以编程方式确定当前安装的Microsoft Internet信息服务(IIS)版本的首选方法是什么?

我知道可以通过查看HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters中的MajorVersion键找到它.

这是推荐的方法,还是.NET开发人员可以使用更安全或更漂亮的方法?

小智 5

public int GetIISVersion()
{
     RegistryKey parameters = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters");
     int MajorVersion = (int)parameters.GetValue("MajorVersion");

     return MajorVersion;
}
Run Code Online (Sandbox Code Playgroud)


Spe*_*ort 1

您可以构建一个 WebRequest 并将其发送到环回 IP 地址上的端口 80,并获取服务器 HTTP 标头。

HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://127.0.0.1/");
HttpWebResponse myHttpWebResponse = null;
try
{
    myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
}
catch (WebException ex)
{
    myHttpWebResponse = (HttpWebResponse)ex.Response;
}
string WebServer = myHttpWebResponse.Headers["Server"];
myHttpWebResponse.Close();
Run Code Online (Sandbox Code Playgroud)

不确定这是否是更好的方法,但这肯定是另一种选择。