.NET Core/5 IC配置在Raspberry Pi 4 4GB上的Ubuntu 20.10 x64上不起作用



在过去11个月左右的时间里,我在32 bit Raspbian上安装了多个应用程序,运行它们完全没有问题。最近,我想试用MongoDB,我需要一个64 bit OS版本来获得最新的构建,所以我决定使用Ubuntu Desktop 20.10 x64。安装Ubuntu后,我试着启动我的一个应用程序,看看是否一切正常。起初,我认为这是.NET 5的问题(我迁移应用程序只是为了看看它是否工作(,但.NET Core 3.1的问题仍然存在,尽管在操作系统切换之前它工作得很好。

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

我无法运行32 bit版本的dotnet,所以我无法真正确定问题的来源。有人知道它为什么会这么做吗?

需要注意的是,我还尝试运行了另一个.NET Core应用程序,我曾在Raspbian上托管该应用程序,但它不是我开发的,我得到了相同的结果。所有东西都坏了,因为配置坏了。

主要问题是,我没有像在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

最新更新