【问题标题】:How to run ASP.NET Core Web application on Linux?如何在 Linux 上运行 ASP.NET Core Web 应用程序?
【发布时间】:2017-02-21 15:13:40
【问题描述】:

dnx-mono NuGet 包的帮助下,我有一个在 Linux 上成功运行的 ASP.NET Web 应用程序。我曾经使用dnx publish工具发布它并使用命令运行它:

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

由于 dnx 已过时,我想摆脱它并迁移到 .NET Core,但它不再适用于 Linux。

重要提示:我无法将我的应用程序设为 .NET Core 应用程序,因为它使用了一些仍然无法用于 .NET Core 的库(如 MySQL.Data)。因此,我创建了 ASP.NET Core Web 应用程序(注意 .NET Framework):

我迁移了整个应用程序并在 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 指南获得的。有什么线索吗?

【问题讨论】:

  • dotnet restore 然后dotnet run 应该是您在任何平台上所需要的,但它需要是一个 .Net Core 应用程序。

标签: asp.net .net .net-core dnx


【解决方案1】:

您不能在 Linux 上运行以完整 .Net 框架为目标的应用程序,它只能是核心。

【讨论】:

  • 1) Mono 不会支持针对完整 .NET 框架的 ASP.NET Core Web 应用程序? 2) MS 没有计划制作我已成功使用的“dnx-mono”之类的 NuGet 包?
  • @MiljenMikic Microsoft 使用 Mono 来引导 .NET Core,但现在 .NET Core 完全独立。请放弃任何带有 DNX 名称的内容,因为现在 .NET Core SDK 1.0 即将推出(3 月 7 日),这就是未来。
  • @LexLi 我真的很想摆脱 DNX* 的东西,这就是我首先发布问题的原因。但一个必要条件是让我的应用程序仍然正常工作,目前情况并非如此。
  • @MiljenMikic 你不能保留所有东西,因为微软确实放弃了某些功能。
猜你喜欢
  • 2021-12-08
  • 2019-02-10
  • 2018-12-23
  • 2018-08-05
  • 2016-11-26
  • 2019-07-12
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
相关资源
最近更新 更多