WCF - 自托管

此处,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