C#开发可以可视化操作的windows服务
这里我以一个WCF的监听服务为例,因为我是做一个局域聊天室,需要服务器端监听终端,所以我就开发了一个服务,以便控制此监听服务。然而,我们开发的windows服务,默认情况下是无法可视化的操作的,这里我就额外的开发一个工具来对此服务进行操作,效果图如下:
开发步骤
1、“新建项目”——“Window服务”
Program.cs代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; using System.ServiceProcess; namespace MSMQChatService { class Program { static void Main() { #region 服务启动入口,正式用 ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new MQChatService() }; ServiceBase.Run(ServicesToRun); #endregion } }
MQChatService.cs代码如下:
protected override void OnStart(string[] args) { //开启服务 这里就是你想要让服务做的操作 StartService(); }
3、切换到MQChatService的可视化界面
4、在可视化界面,单击鼠标右键,
将会出现一个Installer为后缀的新界面,默认好像是Project Installer.cs,我这里将其重命名为ServiceInstaller.cs
分别对界面上这两个组件进行属性配置,具体的属性签名可以查看属性面板的最下面(右下角处)
好了,我们的windows服务已经开发好了,接下来就开发一个可视化的控制器,来控制服务的安装、卸载、启动和停止。
1、 新建一个windows程序,名称ServiceSetup,Form1重命名为FrmServiceSetup,
界面控件如下:
Program.cs代码如下:
View Code
主界面代码:
View Code
新建一个类,专门用于日志操作LogAPI.cs,这里的日志路径和名称建议从配置文件中读取
View Code
Windows服务的操作类ServiceAPI.cs
View Code
注意:记得将服务程序的dll拷贝到可视化安装程序的bin目录下面。