![](/img/trans.png)
[英]Windows Service with FileSystemWatcher starts and stops immediately after
[英]Windows Service with FileSystemWatcher stops after the first event
我正在构建一个简单的Windows服务(基本上将本教程与此类结合)。
现在,我有一个“ FROM”目录和两个“ TO”(TO1,TO2)目录。 当我将文件放入FROM时,应将其同时复制到TO1和TO2。 我安装了服务,并在运行状态的服务控制管理器中启动了该服务。 在第一次运行时,它将文件复制到TO1和TO2,并且此后服务仍在运行。 然后,当我将另一个文件放置到FROM(具有不同的名称)时,什么也没发生。 刷新服务后,我发现该服务已停止。
服务为何停止? 似乎在我放置第二个文件的那一刻就停止了。
在这里,我注册了文件系统观察器:
// File System Watcher
var fileSystemWatcher = new FileSystemWatcher();
fileSystemWatcher.Created += FileSystemWatcher_MoveOnCreate;
fileSystemWatcher.Path = this.fromPath;
fileSystemWatcher.EnableRaisingEvents = true;
这是事件处理程序:
private void FileSystemWatcher_MoveOnCreate(object sender, FileSystemEventArgs e)
{
string FROM = Path.Combine(fromPath, e.Name);
string TO1 = Path.Combine(toPathOne, e.Name);
string TO2 = Path.Combine(toPathTwo, e.Name);
File.Copy(FROM, TO1);
File.Copy(FROM, TO2)
}
如果Windows服务停止,则您的代码中某个地方将出现未处理的异常。 尝试使用try{}catch(){}
包围代码的关键点(可能是FileSystemWatcher_MoveOnCreate
函数的整个主体),并记录发生的情况。 通常,您应该将日志添加到Windows服务中,这是您了解事情是否正在进行的唯一方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.