如何在Linux上运行ASP.NET Core Web应用程序?

问题描述:

我有一个ASP.NET Web应用程序,它在NuGet软件包的帮助下成功运行在Linux上。我曾经用dnx publish工具来发布,并与命令运行它:如何在Linux上运行ASP.NET Core Web应用程序?

/opt/dnx-mono.1.0.0-rc1-update1/bin/dnx --appbase /path/to/json Microsoft.Dnx.ApplicationHost kestrel 

由于DNX是过时的,我想摆脱它,并迁移到.NET的核心,但它并没有在Linux上工作了。

重要:我无法创建我的应用程序.NET Core应用程序,因为它使用了一些仍然不可用于.NET Core的库(如MySQL.Data)。因此,我创建ASP.NET核心Web应用程序(公告.NET框架):

enter image description here 我迁移的整个应用程序,并成功地在Windows上运行它,但我的目标是Linux操作系统。没有更多的dnx publish,没问题 - 有dotnet publish它运作良好,并产生二进制文件。现在怎么办? Dnx-mono软件包没有“dotnet-something”后继者,并且使用dotnet命令和已发布的二进制文件产生了我无法解决的错误(The library 'libhostpolicy.so' required to execute the application was not found),但我认为我甚至不应该使用单独的dotnet命令二进制文件。谷歌搜索没有帮助,因为大多数教程都专注于.NET Core的ASP.NET Web应用程序,而不是.NET Framework。 Linux的版本是Debian 8,dotnet命令是通过以下this指南获得的。任何线索?

+1

'dotnet restore'然后'dotnet run'应该是你在任何平台上都需要的,但它需要是一个.Net核心应用程序。 – DavidG

您无法在Linux上运行以.Net Framework为完整目标的应用程序,它只能是Core。

+0

1)Mono不会支持以完整.NET框架为目标的ASP.NET Core Web应用程序? 2)MS没有制定像我已经成功使用的“dnx-mono”这样的NuGet软件包的计划吗? –

+0

@MiljenMikic Microsoft使用Mono来引导.NET Core,但现在.NET Core已经完全独立。请放弃任何带有DNX名称的东西,就像现在.NET Core SDK 1.0即将到来(3月7日)一样,这就是未来。 –

+0

@LexLi我真的想摆脱DNX *的东西,这就是为什么我把问题放在第一位。但一个必要的条件是保持我的应用程序仍在工作,目前情况并非如此。 –