C# windows服务开发小结

一.什么是windows服务

      每天我们打开电脑,都在使用windows服务。其实,windows服务只是运行与后台而不需要我们去了解的进程而已,在"开始”菜单-》"运行"中 输入services.msc,就能查看到当前系统 中正在运行的服务。有些服务是自动启动的,有些服务是需要手动启动,通过操作系统能够开启、暂停、停止服务。在实际工作中,经常要求我们开发类似的服务,没有界面,在操作系统中自动执行。

二.C#中如何创建windows服务 

    1. 打开VS工具, 新建项目->windows->windows服务,输入服务名称,点击确定,服务创建完毕。

 

    2.选择默认生成的服务类Service1.cs(如果想添加自己的服务类,可以右击您的项目,选择添加->新建项,在弹出的对话框中选择windows服务,输入服务名称,确定)切换到代码视图 ,vs生成的代码如下:

   View Code

 

  至此,你已经成功创建了一个简单的服务程序。如何实现我们需要的功能呢?在生成的代码中,可以看到Service1.cs中可以重写父类ServiceBase的OnStart(服务开启时执行)、 OnStop(服务停止时执行)、OnPause(服务暂停时执行),在相应的方法体中,你可以实现你想要的功能.如下实例代码:

 1   ///   <summary>
 2           ///  开启服务
 3           ///   </summary>
 4           ///   <param name="args"></param>
 5           protected  override  void OnStart( string[] args)
 6         {
 7              //  TODO: 在此处添加代码以启动服务。
 8              
 9              //  this.ConnectDb("OracleDb");
10 
11              this.ConnectDb( " OracleDb ");
12 
13              this.DownLoadOracleDataThread =  new Thread( new ThreadStart(DoadData));
14              this.DownLoadOracleDataThread .Start();
15 
16             
17              this.VerificationThread =  new Thread( new ThreadStart(VericationThread));
18              this.VerificationThread.Start();
19         }
20 
21   ///   <summary>
22           ///  停止服务
23           ///   </summary>
24           protected  override  void OnStop()
25         {
26              //  TODO: 在此处添加代码以执行停止服务所需的关闭操作。
27 
28              if ( this.DownLoadOracleDataThread !=  null)
29             {
30                  this.DownLoadOracleDataThread .Abort();
31             }
32              if( this.VerificationThread!= null)
33             {
34                  this.VerificationThread.Abort();
35             }
36              // 关闭连接
37               if ( this.oracleDB !=  null)
38             {
39                  this.oracleDB .CloseDb();
40             }
41 
42             

43         } 

     至此,我们已经能够开发服务程序了,但是我们开发好的服务程序,要能够在操作系统中运行,需要添加服务安装程序。 

 三.添加服务安装程序

        切换到Service1.cs设计视图器,在任意位置右击,选择"添加安装程序",你会发现在项目中添加了ProjectInstaller.cs,切换到设计视图,右击“serviceInstaller1”选择属性,其中ServiceName设置服务的名称,StartType标识服务的启动类型,默认Manual:手动启动,Automatic:自动启动,Disabled:服务禁止启动,DisplayName标识服务显示的名称,Description标识服务描述。完成这些设置后,生成解决方案。

四.安装部署服务程序 

   转到VS.NET的命令提示符下。cd进入到你程序的Debug文件夹下

   输入"InstallUtil xxxx.exe",如果提示安装成功,你可以在"开始”菜单-》"运行"中 输入services.msc,查看当前系统运行的服务中有你自己开发的服务程序

  如果你想调试服务程序,可以通过附加进程的 方式进行调试。

 

       

 

 

   

转载于:https://www.cnblogs.com/ityannet/archive/2012/02/27/2370600.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值