Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IIS未使用正确的.NET Core版本-如何管理?_Iis_Runtime_Asp.net Core 2.1 - Fatal编程技术网

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

IIS未使用正确的.NET Core版本-如何管理?,iis,runtime,asp.net-core-2.1,Iis,Runtime,Asp.net Core 2.1,我正在尝试运行本地发布的应用程序,该应用程序会立即引发异常: 启动应用程序时出错。 .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版本 但是,我只能获取有关dotnet正在使用的SDK的信息,而不能获取运行

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

启动应用程序时出错。 .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
版本

但是,我只能获取有关
dotnet
正在使用的
SDK
的信息,而不能获取
运行时的信息

我可以获得通过使用
dotnet--info
安装的
SDK
版本列表(下面的输出)。但这也只是显示了所列的
2.1.4
版本

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

.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]

这实际上与IIS没有任何关系,因为IIS只是充当反向代理。问题在于运行时版本选择由于某种原因未能使用最新安装的.NET核心运行时版本。您可以阅读有关此过程如何工作的更多信息,但要总结:

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

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

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

    读取
    dotnet publish
    的输出文件夹中的清单文件似乎没有清单文件。我看到有一个
    --manifest
    参数可以为
    dotnet publish
    指定,但是它似乎被用作输入?或者我应该说
    runtimeconfig.json
    我不明白您想说什么。在输出文件夹中找不到任何清单文件。。。应该可以在没有
    runtimeconfig.json
    的情况下运行它,对吗?对于依赖于框架的部署,我认为您不能没有
    runtimeconfig.json
    ,因为这是
    dotnet
    命令用来初始化环境(也称为运行时)的。这也决定了应该使用哪个版本的运行时(因此,IIS没有扮演这个角色)。1。不存在
    global.json
    文件(也不在任何子目录中)。2.目标框架设置为
    netcoreapp2.1
    。3.正是由于这个原因,我尝试将其部署为自包含的,但这产生了相同的异常…更奇怪的是,我卸载了(并手动从%ProgramFiles%\dotnet\shared中删除了)所有以前的
    .net核心运行时(只留下
    2.1.3
    2.1.4
    ,但出于某种原因,IIS继续使用
    2.1.1-rtm-30846