Raspbian -.net核心应用程序将不会重新加载配置

时间:2018-10-25 17:30:16

标签: c# .net-core raspbian

问题:

我正在Raspberry PI上运行.net核心应用程序。我正在从JSON文件加载配置,并将其存储在类中以供应用程序参考-在这种情况下为托管服务。如果我手动启动应用程序,然后更新配置文件,则更改将反映在应用程序中。但是,如果我将应用程序设置为在启动时自动启动,然后修改配置文件,则该应用程序不使用更新的配置。

我尝试通过rc.local中的条目启动应用程序,并使用systemd作为服务。同样,在应用程序启动并以任何一种方法运行时,它都不会获取配置更改。

系统详细信息:

  • .Net Core 2.1
  • 操作系统内部版本:Raspbian 4.14.52-v7 +#1123

Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        // Register Hosted Services

            services.AddOptions();
            services.AddSingleton<IHostedService, MonitorService>();
            services.Configure<AppSettings (Configuration.GetSection("AppSettings"));
            services.AddMvc();

        }

服务构造器

public MonitorService(IOptionsMonitor<AppSettings> appSettings)
    {

        this.AppSettings = appSettings;
    }

rc.local

#!/bin/sh -e

sudo  /home/pi/App/MonitorApp &

exit 0

MonitorApp.service

   [Unit]
 Description=My Sample Service
 After=multi-user.target

 [Service]
 Type=idle
 ExecStart=/home/pi/App/MonitorApp
 User=pi

 [Install]
 WantedBy=multi-user.target

1 个答案:

答案 0 :(得分:0)

问题已通过以下方式解决:

https://raspberrypi.stackexchange.com/questions/90292/raspbian-net-core-application-wont-reload-configuration/90456#90456

我必须在服务文件中添加一个WorkingDirectory条目,例如

[Unit]
Description=My Sample Service
After=multi-user.target

[Service]
ExecStart=/home/pi/App/MonitorApp
User=pi
WorkingDirectory=/home/pi/App

[Install]
WantedBy=multi-user.target