首页 > 代码库 > Windows 服务

Windows 服务

一. Windows服务的简介

【摘自百度百科】Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这种服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

 

二. Windows 服务实现

1. 创建的服务Service1或者更多的Service, 必须继承了ServiceBase,且需实现

  ? OnStart – 控制服务启动
  ? OnStop – 控制服务停止

2. 针对每个服务要添加安装程序,在visual studio中直接在设计窗口右键菜单中就可选择安装程序,会自动生存对应的安装文件,对ServiceProcessInstaller设置login account

3. 把这些新增的service都加入到ServiceBase数组中,然后把该数组放到ServiceBase.Run(ServiceBase[] services)方法中去执行.

 

三.  自定义的Windows服务的安装,启动,停止,卸载

1. 服务安装文件路径的定位

     a. 在百度知道上提供的该命令的版本较低,属于.Net 2.0, 如果自定义的服务已经是4.0或者以上,请用下面的命令。

     b. 命令窗口需要用管理员权限打开。

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

2. 安装服务程序命令

     a. 通过visual studio建立的该服务程序中可能有多个服务,而该D:\WinService\test.exe是指该服务程序(项目)所生存的那个exe文件。

     b. 如果该文件所在路径有包含了空格,可以用英文双引号""把该路径包含起来, 比如"D:\WinService\test.exe"

     c. 你可以在C:\Windows\Microsoft.NET\Framework\v4.0.30319中找到InstallUtil.exe这个可执行程序,不过这里是采用执行命令的方式,不需要去找到并打开它。
InstallUtil.exe D:\WinService\test.exe

3. 启动服务

    a. 通过visual studio建立的该服务程序中可能有多个服务, 如Service1, Service2等,这里启动服务的名称是指Service1。

    b. 可以通过该命令去启动服务,也可以直接在Windows的计算机管理里面的服务管理那边去手动启动服务。

    c. 如果启动失败则需要考虑是否该服务本事有问题;或者之前有对他进行卸载,但是没有卸载干净;或者设置该服务的登录账号或者密码有问题等。
net start Service1

4. 停止服务

    a. 通过该命令停止或者在Windows的计算机管理里面的服务管理那边去手动停止服务。Service1是服务名称。
net stop Service1

5. 卸载服务程序

    a. 必须要先停止服务后才能卸载服务程序,否则会在后续的安装过程中会出现安装不成功的情况。

    b. 对于服务的更新只能采取先停止,再卸载,然后再重新安装的过程。
InstallUtil.exe /u D:\WinService\test.exe

 

Windows 服务