2010-06-30 11 views
0

J'ai une petite application vb.net utilisant le FileSystemWatcher connecté à un chemin UNC, après une période indéterminée (< jour) les événements de l'observateur ne sont pas déclenchés.Pourquoi mon FileSystemWatcher ne déclenche-t-il pas d'événements après un certain temps?

Im capturer l'événement de fichier créé et passer le chemin d'accès à un bloc de code processfile:

Private Sub fsWatch1_Created(ByVal sender As Object, ByVal e AsSystem.IO.FileSystemEventArgs) Handles fsWatch1.Created 
     'file created in path - process it! 
     ProcessFile(e.FullPath) 

    End Sub 
+2

Avant que nous puissions vous aider, nous aurons besoin de voir le code dont vous parlez. La minimisation ne doit pas entraîner l'utilisation de références inutilisées. –

+0

J'ai trouvé que la minimisation ne cause pas le problème, le FSW semble cesser de répondre après une période de temps (encore indéterminée) – antny

+0

est le lecteur UNC disponible tout le temps? N'y a-t-il aucun problème de réseau? – Marek

Répondre

3

Pour moi, il sonnait comme des problèmes de bas niveau avec le réseau (qui ne peut pas être nécessairement fixe) - si une recherche google rapide a donné cet article sur CodeGuru: http://www.codeguru.com/csharp/.net/net_general/eventsanddelegates/article.php/c9113 dans lequel l'auteur dit qu'il est causé par des interruptions de réseau intermittentes (ils peuvent descendre plus souvent que vous le pensez - et nous parlons en fait de la connexion entre seulement deux machines ici, qui peut être abandonné pour des tas de raisons) et l'observateur peut finir par être corrompu.

L'auteur se connecte à l'événement Error et recrée l'observateur lorsqu'il est déclenché.

Espérons que cela aide.

+0

J'ai implémenté un code similaire pour que fsw.error soit géré et enregistré. Je vais laisser cela fonctionner pendant un moment et voir comment ça se passe, le FSW est en cours d'exécution sur un lien WAN donc c'est très plausible que c'est la cause. - Merci pour votre aide. – antny