首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

[有关问题]写了个windows service用来监视文件夹的变化,调试的时候可以通过,可是用installtuil安装的时候却不能启动,大家帮小弟我看看

2012-01-22 
[问题]写了个windows service用来监视文件夹的变化,调试的时候可以通过,可是用installtuil安装的时候却不

[问题]写了个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.查看服务里面也确实有这个服务,但是我选择启动服务的时候....


问题就出现了,在启动的时候提示内部错误.
而且我在服务中有this.WriteMessage( "FileService服务正在进行初始化!\r\n ");这样的方法是将这句话写入文本,可是也没有出现,这是错在哪里啊,大家帮帮忙!

[解决办法]
你出现的这个服务能安装,但服务不能启运的情况我碰到过一次,
后来检查出来的原因是我 OnStar 里的某段代码执行时抛出异常了,
所以启动不了。

我怀疑你的情况跟我一样。
[解决办法]
本来的app.config在编译之后会生成一个 工程名.exe.config
[解决办法]
没有遇见过
[解决办法]
事件管理器里有什么错误,有些异常错误会记录在那里
[解决办法]
服务使用什么帐户登陆的,系统帐户,还是用户帐户
[解决办法]
ConfigurationManager.AppSettings[ "FileUrl "].ToString();

// 是这样取的,对。

可能是你的 app.config 写得不对吧?
我的是这样的:

<?xml version= "1.0 " encoding= "utf-8 " ?>
<configuration>
<appSettings>
<add key= "ConnectionString " value= "server=.;database=;uid=;pwd=; "/>
</appSettings>
</configuration>

热点排行