使用 Topshelf 重新启动 window 服务后重新创建文件夹

Re-create folder after re-start of window service using Topshelf

我正在为 window 服务使用 Topshelf,并且我使用配置 AfterInstall 创建文件夹 CreateFolder

现在,当我 install/start 服务时,会创建文件夹。不错!

让我说一段时间后我停止了我的服务并删除了创建的文件夹,然后在重新启动服务时,我想重新创建文件夹。这可能吗?

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);
    }

TopShelf 只有 AfterInstall 的自定义操作。您可以绑定服务 Start() 函数以使用 Directory.CreateDirectory(path) 方法检查和创建目录。