日期:2014-05-20  浏览次数:20452 次

[问题]写了个windows service用来监视文件夹的变化,调试的时候可以通过,可是用installtuil安装的时候却不能启动,大家帮我看看
我的服务是这样的:
  private   FileSystemWatcher   curWatcher;//设置一个侦听,当指定的文件夹发生变化时出发事件
我在服务里有个初始化变量的方法:
///   <summary>
                ///   数据初始化
                ///   </summary>
                private   void   CreateObject()
                {
                        log_txt   =   ConfigurationManager.AppSettings[ "LogTxt "].ToString();
                        file_url   =   ConfigurationManager.AppSettings[ "FileUrl "].ToString();
                        file_bak   =   ConfigurationManager.AppSettings[ "FileBak "].ToString();
                        this.WriteMessage( "FileService服务正在进行初始化!\r\n ");
                        this.CanPauseAndContinue   =   true;
                        this.CanStop   =   true;
                        servicePaused   =   false;//用来暂停服务的变量,为true时表示服务暂停
                        this.WriteMessage( "FileService初始化成功!\r\n ");
                }
在OnStart方法中我调用了上面的CreateObject()方法
protected   override   void   OnStart(string[]   args)
                {
                        this.CreateObject();
                        this.WriteMessage( "FileService已经成功开启!\r\n ");

                        this.WriteMessage( "正在设置文件侦听!\r\n ");
                        //设置一个侦听,当指定的文件夹发生变化时触发事件

                        curWatcher   =   new   FileSystemWatcher();
                        curWatcher.BeginInit();
                        curWatcher.IncludeSubdirectories   =   true;
                        curWatcher.Path   =   file_url;
                        curWatcher.Created   +=   new   FileSystemEventHandler(OnFileCreated);
                        curWatcher.EnableRaisingEvents   =   true;
                        curWatcher.EndInit();
                }
服务编译是可以通过的,我也添加了安装程序ProjectInstaller.cs,生成后在\obj\Debug目录下生成了文件**.exe我在控制台也执行了installutil   **.exe.查看服务里面也确实有这个服务,但是我选择启动服务的时候....