使用 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) 方法检查和创建目录。
我正在为 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) 方法检查和创建目录。