如何测试一个服务是否已正常运行?

lanruoshui 2009-09-11 08:45:30
Windows服务打包安装后,如何测试已正常运行?
...全文
249 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqsfd 2009-09-11
  • 打赏
  • 举报
回复
最近也在写服务,我的方法是用installutil写个批处理命令用来调试
安装服务
把下面两行写到一个.bat文件中,xxx.exe就是你要安装的东东的绝对路径
@%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil /U xxx.exe
@%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil xxx.exe
@pause
第一行是先卸载原服务的,第二行是重新安装。
用vs2008写好服务后,双击这个.bat就好,调试方便

bmwsl 2009-09-11
  • 打赏
  • 举报
回复
安装installutil yourproject.exe
反安装installutil /u yourproject.exe
lanruoshui 2009-09-11
  • 打赏
  • 举报
回复
lanruoshui 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 bmwsl 的回复:]
引用 10 楼 lanruoshui 的回复:
这样安装的。
http://blog.csdn.net/lanruoshui/archive/2009/09/09/4535111.aspx

这方法不常用!
况且,你的安装包和windows service是两码事,
你先手动把你写的exe install进windows service,测试没问题了
然后打包,让msi来安装你的这个exe 进windows service
[/Quote]

如何手动把我写的exe install进windows service?
zhangyanyang 2009-09-11
  • 打赏
  • 举报
回复
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
FileStream fs = new FileStream(@"e:\mywinservice.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter mystreamWriter = new StreamWriter(fs);
mystreamWriter.BaseStream.Seek(0, SeekOrigin.End);
mystreamWriter.WriteLine("myWindowsService:Service Started" + DateTime.Now.ToString() + "\n");
mystreamWriter.Flush();
mystreamWriter.Close();
fs.Close();

}

protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
FileStream fs = new FileStream(@"e:\mywinservice.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter mystreamWriter = new StreamWriter(fs);
mystreamWriter.BaseStream.Seek(0, SeekOrigin.End);
mystreamWriter.WriteLine(" myWindowsService: Service Stopped " + DateTime.Now.ToString() + "\n");
mystreamWriter.Flush();
mystreamWriter.Close();
fs.Close();
}

这里在e:\mywinservice.txt建了一个txt,你启动后就有日志,你也可以用时间控件,定时通过获取本机时间来检测
24K純帥 2009-09-11
  • 打赏
  • 举报
回复
帮顶。。
bmwsl 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lanruoshui 的回复:]
这样安装的。
http://blog.csdn.net/lanruoshui/archive/2009/09/09/4535111.aspx
[/Quote]
这方法不常用!
况且,你的安装包和windows service是两码事,
你先手动把你写的exe install进windows service,测试没问题了
然后打包,让msi来安装你的这个exe 进windows service
lanruoshui 2009-09-11
  • 打赏
  • 举报
回复
bmwsl 2009-09-11
  • 打赏
  • 举报
回复
你的windows service是怎么装上的? 这个msi不是你写的么?肯定是在msi的 custom actions 里加入了installutil命令的!
mdmzl 2009-09-11
  • 打赏
  • 举报
回复
dd
lanruoshui 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bmwsl 的回复:]

要重新installutil安装服务,
服务没法调试,只能写eventlog!
[/Quote]

如何重新installutil安装服务,我打包之后有下面这两个文件
bmwsl 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lanruoshui 的回复:]
用VS2008将服务打包安装后,如果服务的程序又更改了,如果未提供自动更新功能,是不是要卸载服务才能让更改有效?没做过这方面的东西,大家有啥资料没?
[/Quote]
要重新installutil安装服务,
服务没法调试,只能写eventlog!
lanruoshui 2009-09-11
  • 打赏
  • 举报
回复
这个服务如何调试啊?
lanruoshui 2009-09-11
  • 打赏
  • 举报
回复
用VS2008将服务打包安装后,如果服务的程序又更改了,如果未提供自动更新功能,是不是要卸载服务才能让更改有效?没做过这方面的东西,大家有啥资料没?
bmwsl 2009-09-11
  • 打赏
  • 举报
回复
写eventlog
yudi010 2009-09-11
  • 打赏
  • 举报
回复
第一:查看服务列表,正常运行的服务里面有没有你的
第二:根据你的服务机能,能不能正常的"服务"
huangyuelei01 2009-09-11
  • 打赏
  • 举报
回复
自己用TXT写个日志文件,这样最直观了,把你想看到关键点个都写一条记录

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧