C# .NET Core/5 IConfiguration在Raspberry Pi 4 4GB上的Ubuntu 20.10 x64上不起作用
在过去11个月左右的时间里,我的C# .NET Core/5 IConfiguration在Raspberry Pi 4 4GB上的Ubuntu 20.10 x64上不起作用,c#,raspberry-pi,ubuntu-20.04,asp.net-core-5.0,C#,Raspberry Pi,Ubuntu 20.04,Asp.net Core 5.0,在过去11个月左右的时间里,我的32位Raspbian上安装了多个应用程序,运行这些应用程序没有任何问题。 最近,我想试用MongoDB,我需要一个64位OS版本来获得最新版本,所以我决定使用Ubuntu Desktop 20.10 x64。安装了Ubuntu之后,我试着启动我的一个应用程序,看看是否一切正常。起初,我认为这是.net5的问题(我迁移应用程序只是为了看看它是否有效),但.netcore3.1也存在问题,尽管它在操作系统切换之前工作得很好 问题在于,IConfiguration没有
32位Raspbian
上安装了多个应用程序,运行这些应用程序没有任何问题。
最近,我想试用MongoDB,我需要一个64位OS
版本来获得最新版本,所以我决定使用Ubuntu Desktop 20.10 x64
。安装了Ubuntu
之后,我试着启动我的一个应用程序,看看是否一切正常。起初,我认为这是.net5
的问题(我迁移应用程序只是为了看看它是否有效),但.netcore3.1
也存在问题,尽管它在操作系统切换之前工作得很好
问题在于,IConfiguration
没有appsettings.json文件的值IConfiguration
包含appsettings.json和appsettings.Production.json作为提供程序,提供程序包含我定义的部分,部分包含定义的键,但所有这些部分上都只有空值
我无法运行32位版本的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
您的配置看起来怎么样?您是如何阅读的?@PavelAnikhouski
“AppSettings”:{“Tokens”:[“token_val”]}
是我用于讨论中的特定应用的部分,我正在使用configuration.GetSection(“AppSettings”).Get()代码>来解析它们。它适用于Windows,在我将RPi操作系统更改为64位之前也可以使用,因此代码应该没有问题。