WCF是一款由微软公司研发的.NET Framework 3.5重要组成部件。它的功能优势突出,比如在兼容性,安全性方面尤其突出。在windows服务中寄宿WCF服务,需要继承ServiceBase,此外,还须要继承Installer以安装服务.以下为具体实现步骤:

寄宿WCF服务步骤1.创建文件winservice.cs,输入代码
- namespace windowswcfservice
 - {
 - using System.ServiceProcess;
 - using System.ServiceModel;
 - using System.Configuration.Install;
 - using System.Configuration;
 - using System.ComponentModel;
 - [ServiceContract(Namespace="http://mysample")]
 - public interface ICalculator
 - {
 - [OperationContract]
 - double Add(double n1, double n2);
 - [OperationContract]
 - double Subtract(double n1, double n2);
 - [OperationContract]
 - double Multiply(double n1, double n2);
 - [OperationContract]
 - double Divide(double n1, double n2);
 - }
 - public class CalculatorService : ICalculator
 - {
 - public double Add(double n1, double n2)
 - {
 - return n1 + n2;
 - }
 - public double Subtract(double n1, double n2)
 - {
 - return n1 - n2;
 - }
 - public double Multiply(double n1, double n2)
 - {
 - return n1 * n2;
 - }
 - public double Divide(double n1, double n2)
 - {
 - return n1 / n2;
 - }
 - }
 - [RunInstaller(true)]
 - public class ProjectInstaller : Installer
 - {
 - private ServiceProcessInstaller process;
 - private ServiceInstaller service;
 - public ProjectInstaller()
 - {
 - process = new ServiceProcessInstaller();
 - process.Account = ServiceAccount.LocalSystem;
 - service = new ServiceInstaller();
 - service.ServiceName = "WCFWindowsServiceSample";
 - Installers.Add(process);
 - Installers.Add(service);
 - }
 - }
 - public class WindowsCalculatorService : ServiceBase
 - {
 - public ServiceHost serviceHost = null;
 - public static void Main()
 - {
 - ServiceBase.Run(new WindowsCalculatorService());
 - }
 - protected override void OnStart(string[] args)
 - {
 - if (serviceHost != null)
 - {
 - serviceHost.Close();
 - }
 - try
 - {
 - serviceHost = new ServiceHost(typeof(CalculatorService));
 - serviceHost.Open();
 - }
 - catch(System.Exception err)
 - {
 - System.Diagnostics.EventLog.WriteEntry("Application", err.Message);
 - }
 - }
 - protected override void OnStop()
 - {
 - if (serviceHost != null)
 - {
 - serviceHost.Close();
 - serviceHost = null;
 - }
 - }
 - }
 - }
 
寄宿WCF服务步骤2.用csc编译文件winservice.cs
csc /t:exe winservice.cs /r:"C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication
Foundation\System.ServiceModel.dll" /r:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.ServiceProcess.dll /r:System.Configuration.Install.dll
寄宿WCF服务步骤3.创建winservice.exe.config,内容如下:
- < ?xml version="1.0"?>
 - < configuration>
 - < system.serviceModel>
 - < services>
 - < service name="windowswcfservice.CalculatorService"
 
behaviorConfiguration="Metadata" >- < host>
 - < baseAddresses>
 - < add baseAddress="http://localhost:8000/service"/>
 - < /baseAddresses>
 - < /host>
 - < endpoint address="*" binding="wsHttpBinding"
 
contract="windowswcfservice.ICalculator" />- < endpoint address="mex" binding="mexHttpBinding"
 
contract="IMetadataExchange"/>- < /service>
 - < /services>
 - < behaviors>
 - < serviceBehaviors>
 - < behavior name="Metadata">
 - < serviceMetadata httpGetEnabled="true" />
 - < /behavior>
 - < /serviceBehaviors>
 - < /behaviors>
 - < /system.serviceModel>
 - < /configuration>
 
寄宿WCF服务步骤4.利用工具C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil.exe安装windows 服务.installutil.exe winservice.exe
#t#
寄宿WCF服务步骤5.启动服务:net start WCFWindowsServiceSample。如果服务不能启动,可查看事件日志以定位错误.
寄宿WCF服务步骤6.访问wcf服务:http://localhost:8000/service
寄宿WCF服务步骤7.停止wcf服务:net stop WCFWindowsServiceSample
寄宿WCF服务步骤8.卸载windows服务:installutil.exe /u winservice.exe
                网站栏目:寄宿WCF服务相关实现方法解析
                
                转载来源:http://www.csdahua.cn/qtweb/news7/412157.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网