WCF – 自托管

WCF – 自托管


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

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

Wcf 托管服务自 1

步骤 2 – 现在,右键单击解决方案资源管理器中的引用,然后单击添加引用。以下窗口打开;将 System.ServiceModel 引用添加到项目中。

Wcf 托管服务自我 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 托管服务自 5

步骤 7 – 添加 system.servicemodel 和项目 MyCalculatorWCFService 的引用。

Wcf 托管服务 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

觉得文章有用?

点个广告表达一下你的爱意吧 !😁