代码之家  ›  专栏  ›  技术社区  ›  Ropstah

IIS没有为.NET Core使用正确的版本-如何管理?

  •  1
  • Ropstah  · 技术社区  · 7 年前

    我正在尝试运行本地发布的应用程序,该应用程序将立即引发异常:

    启动应用程序时出错。

    .NET Core 4.6.26725.06 X86 v4.0.0.0 | Microsoft.AspNetCore.Hosting版本 2.1.1-rtm-30846 |Microsoft Windows 10.0.16299需要帮助吗?

    这个 让我相信 IIS使用版本 2.1.1-rtm-30846 尽管我刚刚下载了最新的 2.1.4 来自网站的版本。

    但是我只能得到 SDK 正在被 dotnet ,而不是 Runtime .

    enter image description here

    我可以得到 软件开发工具包 版本是 安装 尽管使用 dotnet --info (以下输出)。但这也显示了 2.1.4条 已列出版本。

    如何管理IIS用于.NET core的版本 运行时 ?

    .NET Core runtimes installed:
      Microsoft.AspNetCore.All 2.1.0-preview1-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
      Microsoft.AspNetCore.All 2.1.0-rc1-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
      Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
      Microsoft.AspNetCore.All 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
      Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
      Microsoft.AspNetCore.All 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
      Microsoft.AspNetCore.All 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
      Microsoft.AspNetCore.App 2.1.0-preview1-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
      Microsoft.AspNetCore.App 2.1.0-rc1-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
      Microsoft.AspNetCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
      Microsoft.AspNetCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
      Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
      Microsoft.AspNetCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
      Microsoft.AspNetCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
      Microsoft.NETCore.App 1.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 1.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 1.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 1.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.1.0-preview1-26216-03 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.1.0-rc1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Chris Pratt    7 年前

    这实际上与IIS无关,因为IIS只是充当反向代理。问题是,由于某些原因,运行时版本选择无法使用.NET Core运行时的最新安装版本。您可以阅读更多有关此过程如何工作的信息 here ,但总结一下:

    使用最新安装的修补程序版本,除非。。。

    1. 如果存在指定特定版本的global.json文件
    2. 指定的目标框架限制了主版本。例如,如果你的目标是 netcoreapp2.0 ,则将使用最新的2.0运行时,即使已安装2.1运行时。
    3. 应用程序部署为自包含的,在这种情况下,它将始终使用与它一起发布的运行时。

    首先,确保没有指定运行时版本的global.json文件。此文件可能存在于项目的根目录或任何包含目录中,仍然具有作用。接下来,检查您的项目所针对的.NET Core版本,并确保 netcoreapp2.1 ,不是 netcoreapp2.0 .