Повторно создать папку после перезапуска службы окна с помощью Topshelf - PullRequest
0 голосов
/ 03 апреля 2019

Я использую Topshelf для службы окон, и я использовал конфигурацию AfterInstall для создания папки CreateFolder.

Теперь, когда я устанавливаю / запускаю службу, папка создается. Nice!

Допустим, через некоторое время я остановил свой сервис и удалил созданную папку, затем при перезапуске сервиса я хочу, чтобы папка была создана заново. Возможно ли это?

Есть ли какие-либо настройки в конфигурации Topshelf, чтобы при перезапуске папка службы снова создавалась?

HostFactory.Run(
        configuration =>
        {
            configuration.AfterInstall(CreateFolder);
            configuration.Service<Service1>(
                service =>
                {
                    service.ConstructUsing(x => new Service1());
                    service.WhenStarted(x => x.Start());
                    service.WhenStopped(x => x.Stop());
                });
            configuration.EnableServiceRecovery(recoveryOption =>
            {
                recoveryOption.RestartService(1);
            });

            configuration.RunAsVirtualServiceAccount();

            configuration.SetServiceName("TEST");

            configuration.StartAutomatically();

Метод "CreateFolder" ниже здесь,

static void CreateFolder()
    {
            Directory.CreateDirectory(some path);
    }

1 Ответ

1 голос
/ 03 апреля 2019

TopShelf имеет только пользовательские действия для AfterInstall. Вы можете подключиться к сервисной функции Start (), чтобы проверить и создать каталог, используя метод Directory.CreateDirectory (path).

...