.NET Core/5 IConfiguration 不适用于 Ubuntu 20.10 x64 Raspberry Pi 4 4GB

.NET Core/5 IConfiguration does not work on Ubuntu 20.10 x64 on Raspberry Pi 4 4GB

在过去 11 个月左右的时间里,我的 32 bit Raspbian 上安装了多个应用程序,运行 它们完全没有问题。 最近,我想尝试使用 MongoDB,我需要一个 64 bit OS 版本来获取最新版本,所以我决定使用 Ubuntu Desktop 20.10 x64。安装 Ubuntu 后,我尝试启动我的一个应用程序,看看是否一切正常,但事实并非如此。起初,我认为这是 .NET 5 的问题(我迁移了该应用程序只是为了看看它是否有效),但是 .NET Core 3.1 的问题仍然存在,尽管它在 [= 之前​​工作得很好36=]开关。

问题是 IConfiguration 没有 appsettings.json 文件的值。 IConfiguration 包含 appsettings.json 和 appsettings.Production.json 作为提供者,提供者包含我定义的部分,这些部分包含定义的键,但所有这些都只有空值。

我无法 运行 dotnet 的 32 bit 版本,所以我无法真正查明问题出在哪里。有谁知道为什么会那样做?

请注意,我还尝试了 运行ning 我曾经在 Raspbian 上托管的另一个 .NET Core 应用程序,它不是我开发的,我得到了同样的结果。一切都坏了,因为配置坏了。

主要问题是我没有像在我的 Raspberry 上安装 Ubuntu 之前那样在 App.service 文件中定义 WorkingDirectory 变量。我用一个应用程序对此进行了测试,它在设置变量时工作,而在未设置变量时不工作。

App.service 文件应如下所示:

[Unit]
Description=App

[Service]
WorkingDirectory=/var/www/App/
ExecStart=dotnet /var/www/App/App.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=App
Environment=ASPNETCORE_URLS="http://localhost:5000"

[Install]
WantedBy=multi-user.target