Учебники

WCF — Потребление услуг WCF

Службы WCF позволяют другим приложениям получать доступ или использовать их. Служба WCF может использоваться многими способами в зависимости от типа хостинга. Здесь мы объясняем пошаговый метод использования службы WCF для каждого из следующих популярных вариантов хостинга:

  • Использование службы WCF, размещенной в IIS 5/6
  • Использование службы WCF, которая размещается самостоятельно
  • Использование службы WCF, размещенной в службе активации Windows
  • Использование службы WCF, размещенной в службе Windows

Использование службы WCF, размещенной в IIS 5/6

Процесс использования службы WCF, размещенной в IIS 5/6, подробно обсуждается ниже. Кроме того, обсуждение включает в себя, как создавать прокси и консольные приложения.

Шаг 1. После размещения службы в IIS мы должны использовать ее в клиентских приложениях. Перед созданием клиентского приложения нам нужно создать прокси для сервиса. Этот прокси используется клиентским приложением для взаимодействия со службой. Чтобы создать прокси, запустите командную строку Visual Studio 2008. Используя служебную утилиту, мы можем создать прокси-класс и информацию о его конфигурации.

svcutilhttp: //localhost/IISHostedService/Service.svc

ВКФ Потребление услуг IIS 1

После выполнения этой команды мы получим два файла, сгенерированных в расположении по умолчанию.

  • MyService.cs — прокси-класс для службы WCF

  • output.config — информация о конфигурации службы

MyService.cs — прокси-класс для службы WCF

output.config — информация о конфигурации службы

Шаг 2. Теперь мы начнем создавать консольное приложение с использованием Visual Studio 2008 (клиентское приложение).

Wcf Потребляющих Услуг IIS 2

Шаг 3 — Добавьте ссылку «System.ServiceModel»; это основная библиотека для WCF.

Шаг 4 — Создайте прокси-класс.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyServiceClient {
   Class Program {
      Static void Main(string[] args) {
         // Creating Proxy for the MyService
         ServiceClient Client = newServiceClient();
         Console.WriteLine("Client calling the service...");
         Console.WriteLine("Hello Ram");
         Console.Read();
      }
   }
}

Вывод выглядит следующим образом —

Wcf Потребляющие услуги IIS 4

Использование автономного сервиса WCF

Здесь шаг за шагом объясняется весь процесс использования службы WCF, размещенной самостоятельно, наряду с достаточным кодированием и снимками экрана, где это необходимо.

Шаг 1 — Сервис размещен, теперь нам нужно реализовать прокси-класс для клиента. Существуют разные способы создания прокси.

  • Используя SvcUtil.exe, мы можем создать прокси-класс и его конфигурационный файл с конечными точками.

  • Добавление сервисной ссылки на клиентское приложение.

  • Реализация класса ClientBase <T>

Используя SvcUtil.exe, мы можем создать прокси-класс и его конфигурационный файл с конечными точками.

Добавление сервисной ссылки на клиентское приложение.

Реализация класса ClientBase <T>

Из этих трех методов наилучшей практикой является реализация ClientBase <T>. Если вы используете два других метода, нам нужно создавать прокси-класс каждый раз, когда мы вносим какие-либо изменения в реализацию Сервиса. Но это не относится к ClientBase <T>. Он создаст прокси только во время выполнения и позаботится обо всем.

Для этого создайте один прокси-класс, который включает ссылки System.ServiceModel и MyCalculatorService.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorService;

namespace MyCalculatorServiceProxy {
   // WCF create proxy for ISimpleCalculator using ClientBase
   Public class MyCalculatorServiceProxy : 
   ClientBase<ISimpleCalculator>,
   
   ISimpleCalculator {
      Public int Add(int num1, int num2) {
         //Call base to do funtion
         returnbase.Channel.Add(num1, num2);
      }
   }
}

Теперь создайте одно консольное приложение, которое включает ссылки System.ServiceModel и MyCalculatorServiceProxy.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorServiceProxy;

namespace MyCalculatorServiceClient {
   classProgram {
      Static void Main(string[] args) {
         MyCalculatorServiceProxy.MyCalculatorServiceProxy proxy = newMyCalculatorServiceProxy.MyCalculatorServiceProxy();
         
         Console.WriteLine("Client is running at " + DateTime.Now.ToString());
         Console.WriteLine("Sum of two numbers. 5 + 5 =" + proxy.Add(5,5));
         Console.ReadLine();
      }
   }
}

Шаг 2 — Информация о конечной точке (такая же, как у сервиса) должна быть добавлена ​​в файл конфигурации клиентского приложения.

<?xmlversion = "1.0"encoding = "utf-8" ?>
<configuration>
   <system.serviceModel>
      <client>
         <endpoint address 
            ="http://localhost:8090/MyCalculatorServiceProxy/ISimpleCalculator"
            binding = "wsHttpBinding" contract "MyCalculatorServiceProxy.ISimpleCalculator">
            </endpoint>
      </client>
   </system.serviceModel>
</configuration>

Шаг 3 — Перед запуском клиентского приложения необходимо запустить службу. Ниже показан вывод клиентского приложения.

Wcf Потребительские услуги Self 3

Использование службы WCF, размещенной в WAS

Использование службы WCF, размещенной в WAS, — это простой процесс, включающий всего несколько шагов. Шаги следующие:

  • Добавьте прокси-класс и файл конфигурации в клиентское приложение.
  • Создайте объект для MathServiceClient и вызовите метод.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespaceWASHostedClient {
   classProgram {
      staticvoid Main(string[] args) {
         MathServiceClient client = newMathServiceClient();
         Console.WriteLine("Sum of two number 5,6");
         Console.WriteLine(client.Add(5, 6));
         Console.ReadLine();
      }
   }
}

Вывод выглядит так, как показано ниже.

Wcf Потребляющих Услуг WAS 2

Использование службы WCF, размещенной в службе Windows

Пошаговый процесс использования службы WCF, размещенной в службе Windows, подробно описан ниже с помощью кодирования и инструкций.

После успешного размещения мы можем создать прокси-класс для службы и начать использовать его в клиентском приложении. Здесь это показано с использованием типа хостинга IIS.

Wcf Потребляя Услуги Windows Service 1

Добавьте ссылку на ServiceModel.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespaceWindowServiceClient {
   classProgram {
      staticvoid Main(string[] args) {
         //Creating Proxy for the MyService
         MyServiceClient client = newMyServiceClient();
         Console.WriteLine("Client calling the service...");
         Console.WriteLine("Sum of two numbers 5,6");
         Console.WriteLine(client.Add(5, 6));
        
         Console.WriteLine("Subtraction of two numbers 6,5");
         Console.WriteLine(client.Sub(6, 5));
        
         Console.WriteLine("Multiplication of two numbers 6,5");
         Console.WriteLine(client.Mul(6, 5));
        
         Console.WriteLine("Division of two numbers 6,3");
         Console.WriteLine(client.Div(6, 3));
         Console.Read();
      }
   }
}

Вывод выглядит следующим образом —