你的位置:首页 > 软件开发 > ASP.net > WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

发布时间:2016-05-24 16:00:10
上接 WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 ...

上接    WCF学习之旅—WCF服务部署到get='_blank'>IIS7.5(九)

          WCF学习之旅—WCF服务部署到应用程序(十)

 

七 WCF服务的Windows 服务程序寄宿

       这种方式的服务寄宿,和IIS一样有一个一样的优点,系统启动后,WCF服务也会跟着启动了,不用人工干预,也是一种较好的寄宿方式。

      (1) 在解决方案下新建控制台输出项目 WinServiceHosting。如下图。

     WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

    (2)添加 System.ServiceModel.dll 的引用。

    (3)添加 WCF 服务类库(WcfServiceLib)的项目引用。

    (4) 添加响应的Window服务类。如下图。

     WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

    (5)然后在服务类启动里面添加WCF的寄宿代码,如下所示。

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Linq;using System.ServiceModel;using System.ServiceProcess;using System.Text;using System.Threading.Tasks; namespace WinSvrviceHosting{  partial class WCFServiceMgr : ServiceBase  {    string Name = "WCF服务Windows Service寄宿";    public WCFServiceMgr()    {      InitializeComponent();      this.ServiceName = Name;    }    protected override void OnStart(string[] args)    {      // TODO: 在此处添加代码以启动服务。      try      {        svrHost = new ServiceHost(typeof(WCFServiceMgr));        if (svrHost.State != CommunicationState.Opened)        {          svrHost.Open();        }      }      catch (Exception ex)      {        Logger.Log(ex,string.Empty,string.Empty,string.Empty);      }      Logger.Log(Name + DateTime.Now.ToShortTimeString() + "已成功调用了服务一次。");      Logger.Log(Name + "已成功启动。");    }    protected override void OnStop()    {      // TODO: 在此处添加代码以执行停止服务所需的关闭操作。      if (svrHost!=null)      {        svrHost.Close();        svrHost = null;      }    }    private static object syncRoot = new Object();//同步锁    private ServiceHost svrHost = null; //寄宿服务对象   } }

原标题:WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

关键词:Windows

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