我正在使用C#2010开发Windows服务,我正在使用FileSystemWatcher。出于某种原因,我无法开始服务。
当我尝试运行我的服务时,收到以下消息。
本地计算机上的-service-启动和停止。如果某些服务未在其他服务或程序中使用,则会自动启动。
当我放入这段代码时会发生这种情况:
的OnStart:
FSWatcherTest.Path = ConfigurationManager.AppSettings["WatchPath"].ToString();
然后在一个方法中:
private void InitializeComponent()
{
this.FSWatcherTest = new FileSystemWatcher();
((System.ComponentModel.ISupportInitialize)(this.FSWatcherTest)).BeginInit();
this.FSWatcherTest.EnableRaisingEvents = true;
this.FSWatcherTest.Path = "my path";
this.FSWatcherTest.Changed += new FileSystemEventHandler(this.FSWatcherTest_Changed_1);
((ISupportInitialize)(this.FSWatcherTest)).EndInit();
}
等待一些可能的答案。提前谢谢!
答案 0 :(得分:0)
这可能是一个安全问题,因为filesystemwatcher需要完全信任
答案 1 :(得分:0)
我有一段时间没有使用它,所以我可能会离开基础,但你可能在它准备好之前打开FileSystemWatcher。
在上面的代码中,EnableRaisingEvents在InitializeComponent中设置为true(作为设计器生成代码的一部分,我猜)。设计者将该属性默认为true,期望您在设计时也设置有效路径。但是你没有在设计时设置真正的路径(你只是使用“我的路径”)。 FSW可能在EndInit()之后立即抛出异常,因为它开始寻找“我的路径”而无法找到它。
由于您在OnStart方法中设置了实际路径,因此您应该在设计器中使用EnableRaisingEvents false。设置路径后,在OnStart方法中将其设置为true。那是你希望它开始寻找变化的时候。