Ядро Raspbian -.net не будет перезагружать конфигурацию - PullRequest
0 голосов
/ 25 октября 2018

Проблема:

Я запускаю приложение ядра .net на Raspberry PI.Я загружаю конфигурацию из файла 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 голосов
/ 30 октября 2018

Проблема была решена следующим образом:

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
...