你的位置:首页 > 软件开发 > ASP.net > 使用Visual Studio 2015 Community 开发windows服务

使用Visual Studio 2015 Community 开发windows服务

发布时间:2016-01-14 13:00:09
昨天研究在.NET下开发Windows服务程序,期间遇到一些小问题,这里仅将自己的开发过程和需要注意的地方写下和广大网友分享……  1、基础  Windows服务是指系统启动时能够自己运行的程序。Windows服务可以在没 ...

  昨天研究在.NET下开发Windows服务程序,期间遇到一些小问题,这里仅将自己的开发过程和需要注意的地方写下和广大网友分享……

   1、基础

    Windows服务是指系统启动时能够自己运行的程序。Windows服务可以在没有交互界面的情况下在后台进行业务的处理。

  .NET下开发Windows服务需要几个基本的类,它们在程序集System.ServiceProcess.dll和System.Configuration.Install.dll中,分别是:ServiceBase、ServiceInstaller、ServiceProcessInstaller、Installer,这几个类是开发一个最简单的Windows服务所必须的。

  2、使用Visual Studio 2015 Commnuity创建Windows服务项目

  使用Visual Studio 2015 Community 开发windows服务  

  在Classic Desktop(经典桌面程序)中选择Windows Service项目。项目文件结构如下:

  使用Visual Studio 2015 Community 开发windows服务

  双击Service1.cs进入服务设计界面,设置ServiceName属性(该属性在下文中还会提及,请留意),该属性是系统控制Windows服务的标识:

  使用Visual Studio 2015 Community 开发windows服务

  这里我将ServiceName属性设置为Test,大家注意看属性面板的上边,发现这里设置的是ServiceBase类的属性。ServiceBase类是.NET中创建所有Windows服务的基类。在创建新的服务类时,必须从 ServiceBase 派生。

  接下来我们看下Service1.cs文件的代码部分,可以看到里面有个Service1类继承自ServiceBase类,还有两个重写方法,OnStart和OnStop。OnStart中的代码将会在服务启动之后运行,OnStop中的代码在服务停止时运行。除此之外还有OnPause、OnContinue等方法。这是我们编译项目会在bin\Dubug文件夹下生成WindowsService1.exe文件,这个文件就是我们创建的Windows服务。是不是感觉很简单?但是如果你以为Windows服务的创建工作到此为止就结束了,那就错了。不信双击WindowsService1.exe运行试试……

3、Windows服务的安装

  看到了吧,提示我们想要运行Windows服务要先安装该服务

  使用Visual Studio 2015 Community 开发windows服务

  提示信息中提到了installutil.exe,这里先不说它的用处。我们要想安装刚刚创建的Windows服务,首先要在项目中创建安装文件,如图:

  使用Visual Studio 2015 Community 开发windows服务

  双击刚刚创建的Installer1.cs文件会进入它的设计界面,这里且不管设计界面,我们直接进入代码界面,会看到里面有一个类:Installer1,它继承自

System.Configuration.Install命名空间下的Installer类,Installer 类是 .NET中所有自定义安装程序的基类。

  首先我们在Installer1的构造函数中定义我们的服务进程安装类(即上文提到的ServiceProcessInstaller)实例和服务安装类(即上文提到的ServiceInstaller)实例

使用Visual Studio 2015 Community 开发windows服务使用Visual Studio 2015 Community 开发windows服务
    public Installer1()    {      InitializeComponent();      ServiceProcessInstaller spi = new ServiceProcessInstaller();      spi.Account = ServiceAccount.LocalSystem;//设置服务要运行在什么类型的账号下      //这里可以创建多个ServiceInstaller实例      ServiceInstaller si = new ServiceInstaller();      si.ServiceName = "Test";//系统操作服务的标识,要和ServiceBase中设置的ServiceName属性值相同      si.DisplayName = "测试服务";//展示给用户的服务名,即在控制面板中看到的服务名      si.Description = "服务的描述信息";      si.StartType = ServiceStartMode.Manual;//服务的启动方式,这里设置为手动      //最后记得把创建的实例添加到安装列表中      this.Installers.Add(si);      this.Installers.Add(spi);    }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:使用Visual Studio 2015 Community 开发windows服务

关键词:Windows

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。