此处,WCF服务托管在控制台应用程序中.下面给出了以顺序方式采用适当步骤解释整个过程的过程.
步骤1 : 首先,让我们创建服务合同及其实现.创建一个控制台应用程序并将其命名为MyCalculatorService.这是一个返回两个数字的简单服务.
第2步 : 现在,右键单击Solution Explorer中的References,然后单击Add References.将打开以下窗口;添加System.ServiceModel对项目的引用.
第3步 : 创建一个ISimpleCalculator接口,将ServiceContract和OperationContract属性添加到类和函数中,如下所示.您将在以后的会话中了解有关这些合同的更多信息.这些合同将向外界公开使用此服务的方法.
第4步 : 此文件背后的代码如下&&;
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;namespace MyCalculatorWCFService { [ServiceContract()] Public interface ISimpleCalculator { [OperationContract()] int Add(int num1, int num2); }}
第5步 : MyCalculatorService是IMyCalculatorService接口的实现类,如下所示.
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MyCalculatorWCFService { Class SimpleCalculator : ISimpleCalculator { Public int Add(int num1, int num2) { return num1 + num2; } } }
第6步 : 现在,我们已经准备好了这项服务.我们来实现托管过程.创建一个新的控制台应用程序并将其命名为"MyCalculatorWCFServiceHost".
第7步 : 添加system.servicemodel和项目MyCalculatorWCFService的引用.
这背后的代码如下&&;
using System;using System.Collections.Generic;using System.Linq;using System.Text;using MyCalculatorWCFService;using System.ServiceModel;using System.ServiceModel.Description;namespace MyCalculatorWCFServiceHost { class Program { static void Main(string[] args) { //Create a URI to serve as the base address UrihttpUrl = newUri("http://localhost:8090/MyCalculatorWCFService/SimpleCalculator"); //Create ServiceHost ServiceHost host = newServiceHost(typeof(MyCalculatorWCFService.ISimpleCalculator), httpUrl); //Add a service endpoint host.AddServiceEndpoint(typeof(MyCalculatorWCFService.ISimpleCal culator), newWSHttpBinding(), ""); //Enable metadata exchange ServiceMetadataBehaviorsmb = newServiceMetadataBehavior(); smb.HttpGetEnabled = true; host.Description.Behaviors.Add(smb); //Start the Service host.Open(); Console.WriteLine("Service is host at " + DateTime.Now.ToString()); Console.WriteLine("Host is running... Press key to stop"); Console.ReadLine(); } }}