.NET Core-自包含部署无法正常工作

Hoc*_*eyJ 5 web-deployment .net-core asp.net-core

我有一个.NET Core Web应用程序。我正在使用publish命令创建一个自包含的部署

它会创建文件并似乎会创建.net核心dll,但是在Windows 10上的IIS中运行时,我仍然需要安装.NET Core Runtime才能使其正常工作。安装.NET Core Hosting捆绑包后,它可以正常工作。

在询问之前,我已经审查了许多其他帖子,但找不到答案。

默认情况下,IIS给出以下错误:

HTTP错误500.19 –内部服务器错误

我的发布命令:

dotnet publish "mydirectory\mywebsite.csproj" --self-contained --framework netcoreapp2.1 -r win10-x64 -c Release
Run Code Online (Sandbox Code Playgroud)

csproj看起来像这样:

 <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <UserSecretsId>aspnet-mywebsite-656GASF8-B9H4-5963-1038-5D735B609E15</UserSecretsId>
      <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

这是已发布的文件。

在此处输入图片说明

我以为'l1-1-0'部分可能是错误的框架版本,但我的dotnet版本是2.1.500。

在此处输入图片说明

我需要怎么做才能使其正常工作?

Hoc*_*eyJ 6

Lex Li的评论/ 博客文章包含答案。我在这里详细介绍它,以试图避免其他人因这种简单的误解而损失数日。

一个独立的部署确实包括运行时,但是不包括从.net下载页面ASP.NET Core module for IIS下载时所得到的部署。Runtime & Hosting Bundle

因此,如果要部署到IIS,则Runtime & Hosting Bundle即使是自包含部署,也将需要运行安装程序。

自包含的部署仅意味着应用程序将使用与应用程序一起打包的.NET Core Runtime,而不是计算机上安装的任何内容。