私は Windows 2003 で Windows サービスを実行しています。先月は毎日コードを追加/変更しており、先月は毎日ファイルウォッチャーが機能していました。しかし、奇妙な理由で今日は機能しなくなりました。古いコードに戻しても、まだイベントは発生しません。Win7 マシンで同じコードをテストしましたが、問題なく動作しています。干渉している外部プロセスがあると想定していますが、何を探すべきかさえわかりません。
関連するコードは次のとおりです。
private void InitializeComponent()
{
this.processfileWatcher = new System.IO.FileSystemWatcher();
((System.ComponentModel.ISupportInitialize) (this.processfileWatcher)).BeginInit();
this.processfileWatcher.EnableRaisingEvents = true;
this.processfileWatcher.Filter = "done.txt";
this.processfileWatcher.Changed += new System.IO.FileSystemEventHandler(this.processfileWatcher_Changed);
this.ServiceName = "Service1";
((System.ComponentModel.ISupportInitialize)(this.processfileWatcher)).EndInit();
}
private void processfileWatcher_Changed(object sender, System.IO.FileSystemEventArgs e)
{
try
{
processfileWatcher.EnableRaisingEvents = false;
//Do stuff here
Debug.WriteLine(" End of processfileWatcher for: " + e.FullPath);
}
finally
{
processfileWatcher.EnableRaisingEvents = true;
}
}
デバッグ ステートメントを通じて、onStart() メソッドの最後に到達していることを確認できます。