WCF - 自托管
此处,WCF 服务托管在控制台应用程序中。下面按顺序给出了包含适当步骤的过程,以解释整个过程。
步骤 1 − 首先,让我们创建服务契约及其实现。创建一个控制台应用程序并将其命名为 MyCalculatorService。这是一个返回两个数字相加的简单服务。
步骤 2 − 现在,右键单击解决方案资源管理器中的引用,然后单击添加引用。将打开以下窗口;向项目添加 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) { //创建一个 URI 作为基地址 UrihttpUrl = newUri("http://localhost:8090/MyCalculatorWCFService/SimpleCalculator"); //创建 ServiceHost ServiceHost host = newServiceHost(typeof(MyCalculatorWCFService.ISimpleCalculator), httpUrl); //添加服务端点 host.AddServiceEndpoint(typeof(MyCalculatorWCFService.ISimpleCalculator), newWSHttpBinding(), ""); //启用元数据交换 ServiceMetadataBehaviorsmb = newServiceMetadataBehavior(); smb.HttpGetEnabled = true; host.Description.Behaviors.Add(smb); //启动服务 host.Open(); Console.WriteLine("Service is host at " + DateTime.Now.ToString()); Console.WriteLine("Host is running... Press key to stop"); Console.ReadLine(); } } }