首页 新闻 会员 周边 捐助

用InstallUtil安装Windows服务出现异常

0
悬赏园豆:20 [已关闭问题] 关闭于 2010-05-11 17:43

因工作的需要,我要先做一个Windows服务的Demo,可在用InstallUtil安装Windows服务时出现了FileNotFound的异常,估计是我的服务程序需要用到一个叫quotes.txt的文件,可我已把这个文件放到了服务程序集里的bin目录下的debug目录下了,而且我尝试在程序里写死文件路径也报这个错误。

另外,我在InstallUtil命令里加了/LogFile=test.installlog也没见生成这个文件,迫于无奈,才发帖出来请大家帮忙解决问题。

这里是源代码,QuoteService是服务程序集。

谢谢大家帮我解决下

JeffLiang的主页 JeffLiang | 初学一级 | 园豆:43
提问于:2010-05-09 12:21
< >
分享
所有回答(2)
0

可以参考这个,如何引用外部文件
http://www.cnblogs.com/downmoon/archive/2007/12/29/1019924.html

邀月 | 园豆:25475 (高人七级) | 2010-05-09 13:46
0

Windows服务进程的默认运行路径是:C:\windows\system\ 下,所以如果你用相对路径引用 quotes.txt 文件,实际上,程序会使用此路径: C:\windows\system\quotes.txt 。

解决办法,一是用绝对路径,当然,这样的话,不利于部署(比如某台机器上根本没有d盘)。

另一种方式,则是在使用文件路径时,始终用程序集基址,如下:

string logfile = "";

if(!Path.IsPathRooted(logfile))  // 判断给定路径是否为相对地址,并不准确,可以使用正则表达式解决。

{

  logfile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, logfile);
}

Launcher | 园豆:45050 (高人七级) | 2010-05-10 13:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册