Asp.net-Core

.NET Core - 自包含部署不起作用

  • January 10, 2019

我有一個 .NET Core Web 應用程序。我正在使用發布命令來創建一個自包含的部署

它創建文件並似乎創建了 .net core dll,但是當在 Windows 10 上的 IIS 中執行時,我仍然需要安裝.NET Core Runtime才能使其工作。安裝 .NET Core Hosting 捆綁包後,它工作正常。

在詢問之前我已經查看了很多其他文章,但找不到答案。

預設情況下,IIS 給出以下錯誤:

HTTP ERROR 500.19 – 內部伺服器錯誤

我的發布命令:

dotnet publish "mydirectory\mywebsite.csproj" --self-contained --framework netcoreapp2.1 -r win10-x64 -c Release

csproj 看起來像這樣:

<PropertyGroup>
   <TargetFramework>netcoreapp2.1</TargetFramework>
   <UserSecretsId>aspnet-mywebsite-656GASF8-B9H4-5963-1038-5D735B609E15</UserSecretsId>
     <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
 </PropertyGroup>

這是已發布的文件。

在此處輸入圖像描述

我想也許“l1-1-0”部分可能是錯誤的框架版本,但我的 dotnet 版本是 2.1.500。

在此處輸入圖像描述

請問我需要做什麼才能讓它工作?

Lex Li 的評論/部落格文章包含了答案。我在這裡詳細介紹它,以試圖挽救其他人因這個簡單的誤解而失去幾天。

自包含部署確實包括執行時,但它不包括ASP.NET Core module for IISRuntime & Hosting Bundle.net 下載頁面下載時獲得的。

Runtime & Hosting Bundle因此,如果您要部署到 IIS,即使是自包含部署,您也需要執行安裝程序。

自包含部署僅意味著應用程序將使用與應用程序一起打包的 .NET Core 執行時,而不是機器上安裝的任何內容。

引用自:https://stackoverflow.com/questions/54113388