2011-10-19 112 views
2

我開發了文件隊列系統,其中來自不同Windows機器的多個應用程序監視相同的映射網絡驅動器以進行文件更改並繼續執行文件。要觀察映射驅動器的更改,我使用FileSystemWatcher(c#.NET 4.0),並且在FileSystemWatcher停止監視一天後一切正常。我試圖玩FileSystemWatcher.Error事件來捕捉異常,如果有的話。不幸的是錯誤事件並不總是被觸發。我找不到解決問題的方法,FileSystemWatcher停止工作並且沒有錯誤。任何建議?FileSystemWatcher停止監視網絡文件夾

+0

不要讓我們猜測,你確實是會看到錯誤。 –

+0

問題是,50%的時間錯誤事件沒有被解僱,這是問題所在! – Tomas

+0

你錯過了這一點,你*看*的錯誤無疑與它爲什麼不可靠有關。現在,你的問題並沒有提到任何其他問題,「沒有效果」,沒有人能夠幫助你。告訴我們你*知道的事情,而不是你不知道的。 –

回答

1

FileSystemWatcher是不可靠的網絡驅動器...例如已知的是,有一些問題SAMBA共享...

的另一點是,如果你使用它在Windows服務,試着從Windows服務訪問網絡驅動器通常會導致一些問題(取決於Windows版本等)。

+0

我使用它從控制檯應用程序和更多的我讀了關於FileSystemWatcher更多你的話聽起來是真實的。我選擇FileSystemWatcher的主要原因是因爲它速度非常快,我沒有找到另一種構建如此快速的文件隊列的方法。我試圖使用MSSQL作爲隊列的後端,速度慢了6倍。 – Tomas

+0

我明白,但速度很快,因爲它依賴於OS內部文件系統實現中的一些內部機制......這些對於網絡驅動器不可靠......我將創建一箇中央網絡共享,供所有工作站使用並運行FileSystemWatcher在共享所在的同一個系統上... – Yahia