Windows 8 为什么IIS 8.0通过WMI将自己标识为7.5?

Windows 8 为什么IIS 8.0通过WMI将自己标识为7.5?,windows-8,iis-8,Windows 8,Iis 8,我的web应用程序的安装程序通过WMI进行一些配置,为了处理不同的版本,将向IIS询问其版本,代码如下: DirectoryEntry folderRoot = new DirectoryEntry("IIS://localhost/W3SVC/Info"); Version iisVersion = new Version((int)folderRoot.InvokeGet("MajorIIsVersionNumber"), (int)folderRoot.InvokeGet("MinorII

我的web应用程序的安装程序通过WMI进行一些配置,为了处理不同的版本,将向IIS询问其版本,代码如下:

DirectoryEntry folderRoot = new DirectoryEntry("IIS://localhost/W3SVC/Info");
Version iisVersion = new Version((int)folderRoot.InvokeGet("MajorIIsVersionNumber"), (int)folderRoot.InvokeGet("MinorIIsVersionNumber"));

Server 2012和Windows 8对此都返回7.5版本,尽管官方版本是8.0。这不会有太大问题,除非这是windows 2008报告的同一版本。这是为什么?有没有比检查操作系统版本更好的解决方案?

很可能是因为Win7报告它是Windows 6.1版(在命令提示符下键入“ver”),因为产品“名称”实际上并不反映产品版本。在Dos和Win 3.11之前的日子里,它确实打破了命名惯例,因为名称中没有版本号。没错,通过API报告意外事件本身并不是问题。我已经更新了问题,指出这是以前版本报告的相同标识符。这就是问题所在。我只能推测(我不使用IIS或WMI),但是否可以检查接口的存在?如果是这样,我会检查IWebSocketContext是否存在。