Vb.net 网络上的文件系统监视程序

Vb.net 网络上的文件系统监视程序,vb.net,filesystemwatcher,Vb.net,Filesystemwatcher,我正在使用独立应用程序vb.net(2.0)并使用FileySystem watcher类查找进入指定目录的任何新xml,然后应用程序获取该文件并继续该过程,但目录已位于网络计算机中 现在我的问题是 一旦路径不可用,这意味着共享路径服务器将脱机,然后我的应用程序无法与我连接,我如何更改代码 任何人有想法,请分享给我 提前谢谢 Nanda.A如果您正在侦听某个目录上的更改,而该目录变得不可用(如服务器正在重新启动),FileSystemWatcher将抛出异常。它提供了一个你可以倾听并决定如何处理

我正在使用独立应用程序vb.net(2.0)并使用FileySystem watcher类查找进入指定目录的任何新xml,然后应用程序获取该文件并继续该过程,但目录已位于网络计算机中

现在我的问题是

一旦路径不可用,这意味着共享路径服务器将脱机,然后我的应用程序无法与我连接,我如何更改代码

任何人有想法,请分享给我

提前谢谢
Nanda.A

如果您正在侦听某个目录上的更改,而该目录变得不可用(如服务器正在重新启动),FileSystemWatcher将抛出异常。它提供了一个你可以倾听并决定如何处理问题的方法

我有一个运行多个观察程序的应用程序,当其中一个出现错误时,该应用程序将通过每30秒循环一次来处理错误,尝试再次连接。它还记录了它尝试连接失败并最终放弃(大约一小时后)的总次数

以下是VB.Net中的总体思路:

''' <summary>
''' This event is called when an error occurs with the file watcher. Most likely the directory being watched is no longer available (probably from a server reboot.)
''' </summary>
Protected Sub Scan_Error(ByVal Source As FileSystemWatcher, ByVal E As ErrorEventArgs)

    '// Stop listening
    Source.EnableRaisingEvents = False

    '// Maximum attempts before shutting down (one hour)
    Dim Max_Attempts As Integer = 120
    Dim Timeout As Integer = 30000
    Dim I As Integer = 0

    '// Attempt to listen - if fail, wait and try again in 30 seconds.
    While Source.EnableRaisingEvents = False And I < Max_Attempts
        I += 1

        Try
            Source.EnableRaisingEvents = True
        Catch
            Source.EnableRaisingEvents = False
            System.Threading.Thread.Sleep(Timeout)
        End Try
    End While
End Sub
“”
''当文件监视程序发生错误时调用此事件。很可能正在监视的目录不再可用(可能是由于服务器重新启动)
''' 
受保护的子扫描_错误(ByVal源作为FileSystemWatcher,ByVal E作为ErrorEventArgs)
“//不要再听了
Source.EnableRaisingEvents=False
“//关闭前的最大尝试次数(一小时)
Dim Max_尝试次数为整数=120
Dim超时为整数=30000
尺寸I为整数=0
“//尝试侦听-如果失败,请等待30秒后重试。
而Source.EnableRaisingEvents=False且I
这是什么类型的应用程序?一个需要用户输入,或者需要在没有人工干预的情况下运行的程序?