【问题标题】:How can I know under which IIS version my Asp.Net application is running?我如何知道我的 Asp.Net 应用程序在哪个 IIS 版本下运行?
【发布时间】:2009-07-01 11:13:43
【问题描述】:


我如何知道我的 Web 应用程序在开发服务器中运行的 IIS 版本?
作为 .Net 框架 2.0,3.0,3.5,4.0 已经支持内置 IIS....
谢谢

【问题讨论】:

  • 我很好奇你为什么需要知道 IIS 版本。
  • 您为什么想知道正在运行的 IIS 的具体版本是什么?如果您的 Web 应用程序实际上正在运行,那么它必须已经满足某些先决条件,例如已安装 IIS,否则代码将无法运行。
  • @DoctaJones: .Net framework 1.1 以上不需要 IIS,.net framework 2.0,3.0,3.5 支持 IIS 内置
  • @tomfanning:我有 Window Vista,在我的机器上安装了 IIS 6 和 IIS 7,当我部署网站时,它在 IIS 6 托管服务器上运行良好,但在 IIS 6 托管服务器上却没有。请检查我的帖子...stackoverflow.com/questions/1068153/…
  • @tomfanning/@DoctaJonez:要同时支持两者,您可能需要更改一些代码(例如,通配符处理程序如何与 ASP.NET MVC 一起操作)。

标签: .net asp.net frameworks


【解决方案1】:

要获取网络服务器的 IIS 版本,您可以使用 SERVER_SOFTWARE server variable

Request.ServerVariables["SERVER_SOFTWARE"];

它将返回如下内容:

Microsoft-IIS/5.0 (Windows 2000)

Microsoft-IIS/5.1 (Windows XP)

Microsoft-IIS/6.0(Windows 2003 服务器)

您可以找到服务器变量的完整参考here

【讨论】:

    【解决方案2】:

    这可直接从SERVER_SOFTWARE 服务器变量获得:

    HttpContext.Current.Request.ServerVariables["SERVER_SOFTWARE"];
    

    这是一个类似“Microsoft-IIS/7.0”的字符串。

    注意,对于 ASP.NET 开发服务器(“Casini”),该字符串为空。

    【讨论】:

    • 使用开发服务器 => 不使用 IIS,所以问题不适用。
    【解决方案3】:

    @AnthonyWJones “所以问题 变成,一个 ASP.NET 如何 应用程序确定什么操作 它正在运行的系统?”

    您可以使用System.Environment.OSVersion

    【讨论】:

      【解决方案4】:

      版本号可从Windows注册表查询:

      在 Windows 上,运行 regedit 并导航到此目录:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\VersionString  
      

      我的返回版本 6.0,因为我运行的是 Windows 2003 Server。

      【讨论】:

        【解决方案5】:

        我看到有人已经回答了一定程度,但我确实想提一下,最佳实践是将您的 .NET 目标环境包含到您的 ASP.NET 应用程序中。这样目标环境就会出现。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-01-15
          • 1970-01-01
          • 1970-01-01
          • 2020-06-23
          • 2011-05-15
          • 1970-01-01
          • 2019-06-24
          相关资源
          最近更新 更多