servicebase类:
服务类从此类派生,重写方法。
一个可执行文件包含多项服务,每项服务包含单独的安装“注册服务类”。服务与日志相关。
可执行文件的main()函数定义那些服务应该运行。
服务工作目录是系统目录,而不是可执行文件所在目录。
启动某服务时,系统将定位相应的可执行文件,并运行该服务的ONSTART()方法,运行服务于运行可执行文件并不相同。
可执行文件仅加载服务。服务则通过“SCM(服务控制器)”访问。也就是大家在系统中-管理工具-服务 。
当对服务首次调用开始时,可执行文件调用服务类的派生类的构造函数。构造函数之后立即调用ONstart()方法。
服务首次加载之后构造函数不会再执行。构造函数和ONSTART()处理要分开。
从上文可以看出。我们平常在使用的360.瑞星等软件,每次启动都是启动运行EXE文件调用“启动服务”。
那么我们为什么都要对软件进行安装那?
——————————————————————————————————————————
软件的安装也是我们通过服务的安装。从一定程度上来说,软件分为两部分“安装”和“运行”。我们先割裂还看,发现服务的安装和运行的关系并不大。
而我们软件的功能需求 1.首先要搞清楚怎么能让用户简便的安装和卸载咱们的软件。
2.认真写好软件运行时所做的工作。
安装服务程序类
serviceInstaller 类:安装服务类
serviceProcessInstaller:安装服务程序类(服务程序中可以有多个服务。) Process 程序。方法。的意思。
代码上这样体现:
this.Installers.AddRange(new System.Configuration.Install.Installer[] {
//服务安装在服务应用程序中。服务程序可以有多个服务。
this.serviceProcessInstaller1,this.serviceInstaller1});
友情提示: 在服务安装时,容易出现“安装失败”的提示。请到事件查看器中查看具体的错误信息。在服务安装好。在SCM启动服务时,提示错误信息5 拒绝访问。那么有可能是你服务放置的文件夹或盘符的访问权限问题。移动到扩展分区的逻辑分区就好。不要放在主分区。