![](/img/trans.png)
[英]Windows Service with FileSystemWatcher starts and stops immediately after
[英]Windows Service with FileSystemWatcher stops after the first event
我正在構建一個簡單的Windows服務(基本上將本教程與此類結合)。
現在,我有一個“ FROM”目錄和兩個“ TO”(TO1,TO2)目錄。 當我將文件放入FROM時,應將其同時復制到TO1和TO2。 我安裝了服務,並在運行狀態的服務控制管理器中啟動了該服務。 在第一次運行時,它將文件復制到TO1和TO2,並且此后服務仍在運行。 然后,當我將另一個文件放置到FROM(具有不同的名稱)時,什么也沒發生。 刷新服務后,我發現該服務已停止。
服務為何停止? 似乎在我放置第二個文件的那一刻就停止了。
在這里,我注冊了文件系統觀察器:
// File System Watcher
var fileSystemWatcher = new FileSystemWatcher();
fileSystemWatcher.Created += FileSystemWatcher_MoveOnCreate;
fileSystemWatcher.Path = this.fromPath;
fileSystemWatcher.EnableRaisingEvents = true;
這是事件處理程序:
private void FileSystemWatcher_MoveOnCreate(object sender, FileSystemEventArgs e)
{
string FROM = Path.Combine(fromPath, e.Name);
string TO1 = Path.Combine(toPathOne, e.Name);
string TO2 = Path.Combine(toPathTwo, e.Name);
File.Copy(FROM, TO1);
File.Copy(FROM, TO2)
}
如果Windows服務停止,則您的代碼中某個地方將出現未處理的異常。 嘗試使用try{}catch(){}
包圍代碼的關鍵點(可能是FileSystemWatcher_MoveOnCreate
函數的整個主體),並記錄發生的情況。 通常,您應該將日志添加到Windows服務中,這是您了解事情是否正在進行的唯一方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.