博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Windows Service的安装,卸载,启动以及调试.

Posted on 2010-03-18 16:06  Learn more  阅读(958)  评论(0编辑  收藏  举报

近段时间在做C#的项目,使用到了Windows Service.项目包括一个Windows Service工程,一个具体的业务处理工程(dll)
以及一个安装工程.现就这几天的使用心得做一下说明.
    1.Windows Service程序与一般程序的区别。
 Windows Service程序不能等同于一般的程序,直接调试或者运行是不起作用的。
    2.Windows Service程序的安装,卸载和启动。
        要想运行一个Windows Service程序,首先必须将这个服务程序安装到Windows服务中去。如何安装,卸载和启动Windows Service程序呢?最常用的有2种方式。
 方式一就是使用framwork自带的InstallUtil命令以及net start命令。
  1) 安装Service: InstallUtil testService.exe
  2) 卸载Service: InstallUtil /u testService.exe
  3) 启动Service: net start "服务名称"(当然最简单的就是手动启动了^_^)
 方式二就是做一个安装工程。
 方式二的最大好处就是通过相关设定,安装完服务后立马注册Windows Service程序到Windows服务中去,下面我们就
 详细说明一下,如何实现这种处理方式。
  1) 为你的Windows Service工程(假设为:testService)添加一个安装工程(假设为:testServiceSetup)。
  2) 右键点击创建的安装工程(testServiceSetup)选择"追加"-->"项目输出",在"添加项目输出组"对话框中选择"主输出",
     在"项目"下拉框中选择需要主输出的服务程序即testService。
  3) 右键点击创建的安装工程(testServiceSetup)选择"视图"-->"自定义操作",右键点击"自定义操作"添加"自定义操作",
     选择应用程序文件夹中的主输出程序testService,此时在以下4个节点(安装,提交,回滚,卸载)中都添加了主输出程序testService。
  4) 编译安装。
 安装完毕后你创建的服务已经添加到Windows服务中去了。
    3.Windows Service调试。
 启动Visual Studio,打开你的testService project.选择菜单"调试->进程"。在进程窗口里附加你的服务程序testService.exe。如果你看不到你的
 testService.exe,请选中"显示所有会话中的进程".这样你才能看到以system账号运行的Service. 如果你已经设置了断点,当Serice运行到你设置的
 断点时,程序就会停下来等待你的调试。(说明:只有Debug模式下编译的testService.exe才可以进行调试)
    4.Onstart()的调试。
 1) 在方法Onstare()里设置System.Timers.Timer,然后用Timer来延迟启动服务。延迟的时间由你进入调试状态的时间来决定。可以设置为5秒。
    当然服务启动后应停止Timer(设置Timer.Enable=false).
 2) 参见前一篇blog(Debugging the OnStart Method)。 

本文来自CSDN博客 http://blog.csdn.net/march1111/archive/2006/08/31/1151648.aspx