【发布时间】:2015-08-24 20:42:54
【问题描述】:
嗨,发展中的朋友们!
情况: 我为一些简单的文件交换作业提供了一项小型服务,可以将文件从一个系统移动到另一个系统,并进行一些搜索和替换/解压缩。用 C# 编写的服务使用 FileSystemWatcher 检查文件夹中的新文件。 代码:
private static void Main(string[] args)
{
try
{
InitializeService();
}
catch (Exception ex)
{
}
fsw = new FileSystemWatcher();
fsw.Path = RootPath;
//Watch only directories
fsw.NotifyFilter = NotifyFilters.DirectoryName;
//Add the event functions
fsw.Created += FileSystemEvent;
//fsw.Changed += FileSystemEvent;
fsw.Error += OnError;
//start the listener
fsw.EnableRaisingEvents = true;
Console.WriteLine("Started with path: " + RootPath);
Console.ReadLine();
}
问题描述: filewatcher 的路径在另一台服务器上,所以我正在连接到一个共享。 文件监视程序有时会失去与目录的连接(网络问题、维护窗口期间服务器重新启动或其他任何情况)。 如果发生这种情况,filewatcher 不会重新连接到服务器或抛出异常或任何其他表明他不再连接的指示。什么都不做!
问题 我可以做些什么来检查文件观察器是否丢失了连接? 因为我现在的解决方法是每天晚上使用预定的作业重新启动服务器,并首先检查现有文件并在之前处理它们。但是,如果您使用文件监视程序,我认为这不是应该的想法。
非常感谢
【问题讨论】:
-
您是否已经看过this question 及其接受的答案?
-
在接受的答案中写道,临时网络问题将触发错误事件,此处并非如此。