Я пытаюсь разработать доказательство концепции веб-службы WCF, которая использует класс FileSystemWatcher для прослушивания каталога и просто выводит тип изменения и полный путь к файлам, которые изменены ,Служба WCF для мониторинга каталога изменений файла
У меня есть пример консольного приложения, которое работает так, как ожидалось, но когда я переношу это в библиотеку WCF, обработчик событий для изменений файла никогда не срабатывает.
Код:
public void MonitorFolder()
{
System.IO.FileSystemWatcher watcher = new System.IO.FileSystemWatcher();
watcher.Path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "folder-to-watch");
watcher.IncludeSubdirectories = false;
watcher.Changed += watcher_Changed;
watcher.Filter = "*.*";
watcher.NotifyFilter = NotifyFilters.LastAccess |
NotifyFilters.LastWrite |
NotifyFilters.FileName |
NotifyFilters.DirectoryName;
watcher.EnableRaisingEvents = true;
}
void watcher_Changed(object sender, System.IO.FileSystemEventArgs e)
{
Console.WriteLine(string.Format("Change: {0}, File: {1}", e.ChangeType, e.FullPath));
}
И внутри класса клиента, который вызывает службу:
static void Main(string[] args)
{
FileListenerClient c = new FileListenerClient();
c.MonitorFolder();
c.Close();
}
Любые идеи, почему это не улавливают изменения файла?
Спасибо за ваш ответ - услуга теперь работает без каких-либо изменений. Не уверен, что исправлено, но внесение изменений уловлено обработчиком событий. – andrewb