使用Topshelf重新启动窗口服务后,重新创建文件夹

时间:2019-04-03 11:08:55

标签: c# topshelf

我正在使用Topshelf进行窗口服务,并使用配置AfterInstall创建了一个文件夹CreateFolder

现在,当我安装/启动服务时,将创建文件夹。很好!

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

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 个答案:

答案 0 :(得分:1)

TopShelf仅对AfterInstall具有自定义操作。您可以绑定到服务Start()函数,以使用Directory.CreateDirectory(path)方法检查并创建目录。