- •Практическое руководство по программной реализации wcf-служб
- •Как определить контракт службы WindowsCommunicationFoundation
- •Как реализовать контракт службы WindowsCommunicationFoundation
- •Реализация контракта службы wcf
- •Как размещать и запускать базовую службу WindowsCommunicationFoundation
- •Создание консольного приложения для размещения службы.
- •Как создать клиент Windows Communication Foundation
- •Создание клиента Windows Communication Foundation
- •Как настроить базовый клиент Windows Communication Foundation
- •Настройка клиента Windows Communication Foundation
- •Как использовать клиент Windows Communication Foundation
- •Использование клиента Windows Communication Foundation
- •Настройка служб с использованием файлов конфигурации
- •Основные разделы файла конфигурации
- •Практическое руководство. Конфигурации привязок и поведения
- •Слияние поведений
- •Как разместить службу wcf в iis
- •Создание службы, размещенной в iis
- •Служебное средство ServiceModel Metadata Utility Tool (Svcutil.Exe)
- •Функциональные возможности
- •Время ожидания
- •Настройка для различных версий
- •Доступ к документам wsdl
- •Использование программы SvcUtil.Exe
- •Типичные способы использования
- •Создание кода
- •Экспорт метаданных
- •Проверка службы
- •Загрузка метаданных
- •Создание типа XmlSerializer
- •Примеры
- •Максимальная квота на количество символов в таблице имен.
- •Вопросы безопасности
Практическое руководство по программной реализации wcf-служб
Источник: https://msdn.microsoft.com/ru-ru/library/ms734712%28v=vs.110%29.aspx
Содержащиеся в этом разделе подразделы призваны кратко познакомить читателя с процессом программирования в Windows Communication Foundation (WCF). Их нужно выполнять в том порядке, в котором они перечислены в конце этой страницы. Прохождение этих занятий позволит получить базовое представление об этапах, которые необходимы для создания служб и клиентских приложений WCF. Служба представляет собой конструкцию, предоставляющую одну или несколько конечных точек, каждая из которых предоставляет одну или несколько операций службы. Конечная точка службы задает адреса, по которым можно найти службу, привязку, содержащую сведения, которыми клиент должен обмениваться со службой, и контракт, который определяет функциональность, предоставляемую службой клиентам.
После выполнения последовательности занятий будет создана готовая служба и клиент, который может вызывать операции этой службы. В первых трех разделах описано, как определить службу с помощью контракта, как реализовать службу и как настроить службу в коде, а также как разместить и запустить ее. Созданная служба размещается резидентно, а клиент и служба выполняются на одном и том же компьютере. Служба настраивается с помощью кода, а не файла конфигурации. Службы можно размещать в службах IIS. Дополнительные сведения о том, как сделать это, см в разделе Практическое руководство. Как разместить службу WCF в IIS. Кроме того, службы можно настраивать с помощью файла конфигурации. Дополнительные сведения о использовании файла конфигурации см. в разделе Настройка служб с использованием файлов конфигурации.
В следующих трех разделах описано, как создать прокси клиента, настроить клиентское приложение, а также создать и использовать клиент, который может обращаться к функциональности службы. Службы публикуют доступные метаданные, которые определяют конструкции, необходимые клиентским приложениям для взаимодействия с операциями службы. WCF предоставляет средство Служебное средство ServiceModel Metadata Utility Tool (Svcutil.exe) для автоматизации процесса доступа к опубликованным метаданным и их использования для настройки клиентского приложения для службы.
Во всех занятиях этого раздела предполагается, что в качестве среды разработки используется версия Visual Studio 2010 или выше.
Как определить контракт службы WindowsCommunicationFoundation
Это первый из шести шагов, необходимых для создания базового приложения Windows Communication Foundation (WCF).
При создании службы WCF необходимо в первую очередь определить контракт службы. В контракте службы указываются операции, поддерживаемые службой. Операцию можно представлять себе как метод веб-службы. Контракты создаются путем определения интерфейса C++, C# или Visual Basic. Каждый метод в интерфейсе соответствует определенной операции службы. К каждому интерфейсу должен быть применен атрибут ServiceContractAttribute, а к каждой операции должен быть применен атрибут OperationContractAttribute. Если один из методов в интерфейсе, имеющем атрибут ServiceContractAttribute, не имеет атрибута OperationContractAttribute, этот метод не будет представлен службой.
Код, используемый для выполнения этой задачи, приведен в примере после описания процедуры.
Определение контракта службы
Откройте Visual Studio 2012 от лица администратора, щелкнув программу правой кнопкой мыши в меню Пуск и выбрав команду Запуск от имени администратора.
Создайте проект библиотеки службы WCF, последовательно выбрав в меню Файл пункты Создать и Проект. В диалоговом окне Создание проекта с левой стороны разверните Visual C# для проекта на языке C# или Другие языки и Visual Basic для проекта на языке Visual Basic. В выбранном языке выберите WCF, после чего в центре диалогового окна отобразится список шаблонов проекта. Выберите Библиотека службы WCF, затем введите данные GettingStartedLib в текстовом поле Имя и GettingStarted в текстовом поле Имя решения в нижней части диалогового окна.
Visual Studio создаст проект, содержащий 3 файла: IService1.cs (или IService1.vb), Service1.cs (или Service1.vb) и App.config. В файле IService1 содержится контракт службы по умолчанию. В файле Service1 содержится контракт службы, реализованный методми по умолчанию. В файле App.config содержатся настройки, необходимые для загрузки службы по умолчанию средством WCF Service Host в Visual Studio.
Откройте файл IService1.cs или IService1.vb и удалите код в пределах объявления пространства имен, оставив при этом само объявление пространства имен. В пределах объявления пространства имен определите новый интерфейс с именем ICalculator, как показано в приведенном ниже примере кода.
// IService.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace GettingStartedLib
{
[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
public interface ICalculator
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
}
В этом контракте определен онлайн-калькулятор. Следует обратить внимание на то, что интерфейс ICalculator помечен атрибутом ServiceContractAttribute. Этот атрибут определяет пространство имен, которое используется для устранения неоднозначности имени контракта. Каждая операция калькулятора помечена атрибутом OperationContractAttribute.
Примечание |
При использовании атрибутов для описания интерфейса, члена или класса в имени атрибута можно опускать часть «Attribute». Таким образом, ServiceContractAttribute изменится на [ServiceContract] в C# или на <ServiceContract> в Visual Basic. |