开发手册 欢迎您!
软件开发者资料库

WCF - 自托管

WCF自托管 - 从简单和简单的步骤学习WCF,从基本到高级概念,包括概述,对战Web服务,开发人员工具,架构,创建wcf服务,托管wcf服务,IIS托管,自托管,WAS托管,窗口服务托管,消费wcf服务,服务绑定,实例管理,事务,ria服务,安全性,异常处理。

此处,WCF服务托管在控制台应用程序中.下面给出了以顺序方式采用适当步骤解释整个过程的过程.

步骤1 : 首先,让我们创建服务合同及其实现.创建一个控制台应用程序并将其命名为MyCalculatorService.这是一个返回两个数字的简单服务.

Wcf Hosting Services Self 1

第2步 : 现在,右键单击Solution Explorer中的References,然后单击Add References.将打开以下窗口;添加System.ServiceModel对项目的引用.

Wcf Hosting Services Self 2

第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".

Wcf Hosting Services Self 5

第7步 : 添加system.servicemodel和项目MyCalculatorWCFService的引用.

Wcf Hosting Services 6

这背后的代码如下&&;

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();      }   }}

 Wcf托管服务自助8