zoukankan      html  css  js  c++  java
  • vs下开发windows服务程序

    一、 VS2012下开发Windows服务

    1、 打开VS2012,新建项目,选择Windows服务,此处我以开发一个定时自动发送邮件的服务来做介绍,如下图:

     

    2、 创建好后,编译器会自动创建一些文件,其中会有一个Service1类文件,该文件是服务的关键,我们可以将其重命名,这里我将其命名为MainService,如下图:

     

    3、 在MainService的后台代码中会自动创建一些方法,包括服务的启动和停止方法等,如下图:

     

    4、 将服务启动时要执行的操作放在OnStart方法中,服务停止时要执行的操作放在OnStop方法中

    5、 在MainService.cs设计器中,单击邮件,选择选择添加安装程序,便会生成一个ProjectInstaller.cs的文件,如图所示:

     

    6、 设置ProjectInstaller.cs的属性,切换到属性设置界面

    (1) 选择serviceInstaller1,并设置相应属性如下图所示:

     

    其中:Description属性用于设置服务安装之后再服务界面上显示的描述信息;

          DisplayName属性用于设置服务安装之后再服务界面上显示的服务名称;

          ServiceName属性用于设置服务的名称,此名称必须与ServiceBase类的ServiceName属性设置的名称一致,该名称用于系统标识此服务,可以理解成DisplayName为ServiceName的别名;

          StartType属性用于设置服务的启动方式。

    (2) 选择serviceProcessInster1,设置其属性如下:

     

    此处主要设置Account属性,该属性用来指示运行该服务时的账户类型,一般设置为LocalSystem。

    7、 到此步一个简单的windows服务就创建好了,编译程序会生成一个EmailService.exe的可执行文件,接下来便是安装服务了。

    二、Windows服务的安装

    Windows服务的安装有多种方式,比如可以再cmd下调用命令来安装,也可以写一个安装程序来安装,此处介绍使用bat批处理来安装。

    1、 安装Windows服务需要用到InstallUtil.exe程序,该程序位于:

    C:WindowsMicrosoft.NETFramework64v4.0.30319 .NET4.0

    C:WindowsMicrosoft.NetFramework64v2.0.50727 .NET2.0

    2、 我们可以再批处理命令中直接调用以上目录中的InstallUtil.exe程序,也可以将该程序拷贝到应用程序的目录下,此处我选择奖该程序拷贝到应用程序的目录下,同时将批处理文件也创建在应用程序的的目录下,如下图所示:

     

    3、 注册服务的批处理命令如下所示:

    %~dp0InstallUtil.exe %~dp0EmailService.exe

    Net Start EmailService  --这里是安装完成之后启动服务

    sc config EmailService start= auto –这里是将服务设置为自动启动

    pause

    其中%~dp0表示批处理所在的目录;

    4、 注销服务的批处理命令如下所示:

    %~dp0InstallUtil.exe /u %~dp0EmailService.exe

    pause

    5、 启动服务的批处理命令如下所示:

    net start EmailService

    pause

    6、 停止服务的批处理命令如下所示:

    net stop EmailService

    pause

    7、 当我们运行注册服务批处理命令之后便会进行服务安装,如果安装成功,我们在服务界面将看到该服务,如下图所示:

     

    8、 安装服务时的注意事项

    (1) 安装程序InstallUtil.exe的版本必须于创建Windows服务的.NET版本一致;

    (2) 如果是Win7以上版本的系统,在运行批处理命令时,应以管理员身份运行;

    (3) 如果是Win7以上版本的系统,应特别注意安装程序和应用程序的路径,以便能够正确的写批处理命令。

    原文转载:http://blog.csdn.net/huangcailian/article/details/42237013

  • 相关阅读:
    User Get 'Access Denied' with Excel Service WebPart
    How To Search and Restore files from Site Collection Recycle Bin
    How To Collect ULS Log from SharePoint Farm
    How To Restart timer service on all servers in farm
    How to Operate SharePoint User Alerts with PowerShell
    How to get Timer Job History
    Synchronization Service Manager
    SharePoint 2007 Full Text Searching PowerShell and CS file content with SharePoint Search
    0x80040E14 Caused by Max Url Length bug
    SharePoint 2007 User Re-created in AD with new SID issue on MySite
  • 原文地址:https://www.cnblogs.com/zhy-1992/p/6515850.html
Copyright © 2011-2022 走看看