多个FileSystemWatchers监视相同的文件夹

时间:2016-05-04 11:08:32

标签: c# .net windows-services filesystemwatcher

我有一个现有的Windows服务,它使用FileSystemWatcher对象来监视一个文件夹。现在,我想创建另一个使用FileSystemWatcher对象来监视同一文件夹的Windows服务。那么,有人可以在下面的问题上澄清我吗?

  1. 监控同一文件夹的FileSystemWatchers数量有限制吗?
  2. 我们如何处理文件锁定或访问问题,例如当一个FileSystemWatcher被写入目录而另一个正在尝试读取同一个文件时?
  3. 对此设置有任何其他影响吗?
  4. 此致 拉姆

1 个答案:

答案 0 :(得分:0)

我正在处理类似的情况。我在2台计算机上安装并运行了相同的服务。每个服务器都在监视网络上相同的文件夹集合。

以我的经验:

  1. 具有2个服务,每个服务监视相同的网络共享位置,这不是问题-两者都会做出反应。
  2. 我的FSW触发了从受监视位置到另一个网络位置的文件复制。由于服务的两个实例都会做出反应,因此两者都会尝试复制。我的一项服务抛出错误(我尝试.catch),另一项则起作用。对我来说这是一个令人满意的解决方案,尽管我认为它不是很“整洁”。
  3. FSW非常不可靠。我目前正在处理网络连接失败并且必须重新启动文件监视程序的情况。在SO上重新启动FSW的方法有很多示例。就个人而言,我在onError事件中设置了一个计时器,并在30秒后重新创建了FSW。是的,我正在重新创建它-我读了一个简单的“ .EnableRaisingEvents = true;”建议。效果不佳。

HTH