上接 WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 ...
上接 WCF学习之旅—WCF服务部署到get='_blank'>IIS7.5(九)
WCF学习之旅—WCF服务部署到应用程序(十)
七 WCF服务的Windows 服务程序寄宿
这种方式的服务寄宿,和IIS一样有一个一样的优点,系统启动后,WCF服务也会跟着启动了,不用人工干预,也是一种较好的寄宿方式。
(1) 在解决方案下新建控制台输出项目 WinServiceHosting。如下图。
(2)添加 System.ServiceModel.dll 的引用。
(3)添加 WCF 服务类库(WcfServiceLib)的项目引用。
(4) 添加响应的Window服务类。如下图。
(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
(#换成@)。