您的位置:首页 > 其它

创建、安装、调试windows service(附详细步骤)

2015-09-25 11:13 274 查看
最近项目中需要做一个定时执行某个服务的功能,刚开始想用Oracle JOB做,但是后来发现程序的主要逻辑不是写在存储过程中的,所以决定用Windows Service来做。倒腾倒腾了半天,也算是圆满成功。

先介绍一下我的开发平台,VS 2005(有点老哦,项目是升级原来的系统,所以平台也是2005)、windows 7、Oracle等等。好了话不多说,进入正题……

*Step1 ——创建windows service*

1.在解决方案上新增新建项,选择Windows 服务,改好名字后点击确定(本文用到的名字为WindowsService1.cs) 







添加完成后,会发现VS已经建立了windows service必要的引用关系和文件(建议修改Service1.cs名称)。

2.接下来,我们可以看到Service1.cs中出现OnStart()和OnStop()两个事件,当然,ServiceBase还提供了OnPause/OnContinue的方法类,可以按照字面意思去理解,
4000
基于本次需求,只用到了OnStart()和OnStop()两个事件,在这两个事件里面写了具体的方法(根据需要编写)



添加完OnStart()和OnStop()中的方法后,还可以看看Program.cs中的代码,核实ServicesToRun中对应的服务名是否和服务名称一致。最后生成一下,就可以看到Service1.exe文件了……接下来我们要进行下一步,建立安装程序。

(PS:这一切都完成后,服务还是没有办法双击就运行,它需要一个安装类(Installer)来辅助)

*Step2——创建service安装类*

1.在Windows Service解决方案下新增安装程序类(自己命名)



 

 2.新增完成后在Installer的设计器中先声明两个引用serviceProcessInstaller1和serviceInstaller1,他们作用于Service和InstallUtil.exe的执行。

 private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;
 private System.ServiceProcess.ServiceInstaller serviceInstaller1; 

 3.我们需要在这个安装类中创建一个service安装进程和service安装类:

  private void InitializeComponent()
   {   
   this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller();
   this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller();
   }

 4.然后再设置安装类对应服务的名称以及相关配置

this.serviceInstaller1.Description = "Your Description";//填写你的服务的描述

        this.serviceInstaller1.ServiceName = "YourServiceName";//填写你的服务的名称

        this.serviceInstaller1.StartType = 

System.ServiceProcess.ServiceStartMode.Automatic;//Automatic代表服务的启动方式为自动启动

        this.serviceProcessInstaller1.Account = 

System.ServiceProcess.ServiceAccount.LocalSystem;//LocalSystem表示用本地系统账户启动(不需要用户名和密码)

        this.serviceProcessInstaller1.Password = null;

        this.serviceProcessInstaller1.Username = null;

        this.Installers.AddRange(new System.Configuration.Install.Installer[] 

{this.serviceInstaller1,this.serviceProcessInstaller1});

 5.编写完成之后生成以下,安装类也就这样完成了,下一步我们进入widnows service的安装环节。

*Step3 ——Widnows Service的安装*

Widnows Service的安装可以用一下两种形式实现:

1.CMD的DOS命令行

    输入C:/Windows/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe 你的service.exe存放路径\你的service名称.exe来执行安装服务;





输入...installutil.exe /u ..路径\你的service名称.exe来卸载service安装



2.利用txt文档编写安装和卸载的bat执行文件(文件内容如下)

安装:



卸载:



3.安装完成后,可以在服务中看到自己安装的服务进程,则代表安装成功



*Step4 ——调试Widnows Service*

Widnows Service的调试可是有点揪心,不过按照网友的方法,现学现卖也是调试进去了,步骤如下:

1.首先编译好服务,在合适的地方加上断点

2.启动(或者重启)服务,用bat或者命令行都可以

3.VS2005中“调试 –> 附加到进程”选择对应的服务进程并添加(速度要快,接着就可以进入断点啦)





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: