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