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目录下面。

posted @ 2015-04-07 08:18  armyfai  阅读(863)  评论(0编辑  收藏  举报