自包含 asp.net 核心网络 api 正在获取:- 无法初始化 CoreCLR,HRESULT:Ubuntu 16.10-x64 上的 0x80131500

self-contained asp.net core web api is getting:- Failed to initialize CoreCLR, HRESULT: 0x80131500 on Ubuntu 16.10-x64

我有一个自包含的 asp.net 核心网站,我可以 运行 在 windows 10 中正常运行,但是在发布 ubuntu.16.10-x64 时,并且 运行 在 ubuntu 16.10 x64 桌面版中使用它得到一个:

无法初始化 CoreCLR,HRESULT:0x80131500

我有运行更新和升级os: (sudo apt-get 更新,sudo apt-get 升级)

我正在以 sudo 身份执行启动命令。

该文件具有 运行 权限 (-rwxrwx--x)

TargetFramework 是 netcoreapp1.1。

libicu-dev 已经是最新版本 (55.1-7ubuntu0.2).

如何解决错误?

更新 28/07/17

虽然似乎有几个相关问题可能导致此问题(大多数似乎与依赖相关),但一些用户报告说 Ubuntu 16.1 之后get started page 上的说明已解决错误。

this thread.

上建议了针对各种其他情况的其他几个修复

此外,根据 https://github.com/dotnet/coreclr/issues/11417 - 某些情况可能是由于 CoreCLR 1.1 中的现有错误造成的 - 这听起来不太可能在此版本中得到修复。在这种情况下,建议迁移到版本 2.0 作为解决方法。

原回答:

为了帮助诊断问题,您可以通过使用 .UseSetting("detailedErrors", "true").CaptureStartupErrors(true) 指定详细的错误日志记录来启用详细的启动错误,如下例所示:

public static void Main(string[] args)
{
  var host = new WebHostBuilder()
      .UseKestrel()
      .UseContentRoot(Directory.GetCurrentDirectory())
      .UseSetting("detailedErrors", "true")
      .UseIISIntegration()
      .UseStartup<Startup>()
      .CaptureStartupErrors(true)
      .Build();

  host.Run();
}

2018 年 1 月 24 日更新

迁移到 .net core 2.0 后问题得到解决