- •Практическое руководство по программной реализации 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
- •Примеры
- •Максимальная квота на количество символов в таблице имен.
- •Вопросы безопасности
Загрузка метаданных
Средство Svcutil.exe можно использовать для загрузки метаданных из работающих служб и сохранения этих метаданных в локальных файлах. Для загрузки метаданных необходимо задать параметр /t:metadata. В противном случае создается код клиента. Для URL-схем HTTP и HTTPS средство Svcutil.exe предпринимает попытку извлечь метаданные с помощью WS-Metadata Exchange и DISCO. Для всех остальных URL-схем Svcutil.exe использует только WS-Metadata Exchange.
Svcutil одновременно направляет следующие запросы метаданных для извлечения метаданных.
Запрос MEX (WS-Transfer) на предоставленный адрес
Запрос MEX на предоставленный адрес с присоединенным /mex
Запрос DISCO (с использованием протокола DiscoveryClientProtocol из ASMX) на предоставленный адрес.
По умолчанию для осуществления запросов MEX Svcutil.exe использует привязки, определенные в классе MetadataExchangeBindings. Для настройки привязки, используемой для WS-Metadata Exchange, необходимо определить в конфигурации, использующей контракт IMetadataExchange, конечную точку клиента. Ее можно определить в файле конфигурации средства Svcutil.exe или в другом файле конфигурации, заданном с помощью параметра /svcutilConfig.
svcutil.exe
/t:metadata <url>* | <epr>
Аргумент |
Описание |
url |
URL-адрес конечной точки службы, предоставляющей метаданные, или документа метаданных, размещенного в сети. |
epr |
Путь к файлу XML, который содержит ссылку на конечную точку службы WS-Addressing EndpointReference, которая поддерживает WS-Metadata Exchange. |
Создание типа XmlSerializer
Службы и клиентские приложения, использующие типы данных, сериализуемые с помощью сериализатора XmlSerializer, создают и компилируют код сериализации для этих типов данных во время выполнения, что может привести к снижению производительности при запуске.
Примечание |
Предварительно созданный код сериализации может использоваться только в клиентских приложениях, но не в службах. |
Svcutil.exe может улучшить производительность при запуске этих приложений путем создания необходимого кода сериализации C# из компилированных сборок для приложения. Дополнительные сведения см. в разделе Как сократить время запуска клиентских приложений WCF с использованием XmlSerializer.
Примечание |
Svcutil.exe создает код только для типов, которые используются контрактами служб, найденными во входных сборках. |
svcutil.exe
/t:xmlSerializer <assemblyPath>*
Аргумент |
Описание | |
assemblyPath |
Задает путь к сборке, содержащей типы контрактов служб. Типы сериализации создаются для всех сериализуемых в формат Xml типов в каждом контракте. | |
Параметр |
Описание | |
/reference:<путь к файлу> |
Добавляет заданную сборку в набор сборок, используемых для разрешения ссылок на типы. Сокращенная форма: /r | |
/excludeType:<тип> |
Задает полное имя типа или имя типа с указанием на сборку, который необходимо исключить из экспорта или проверки. Сокращенная форма: /et | |
/out:<файл> |
Задает имя файла созданного кода. При передаче в средство нескольких сборок в качестве входных данных этот параметр не учитывается. По умолчанию: наследуется от имени сборки. Сокращенная форма: /o | |
/UseSerializerForFaults |
Указывает, что вместо сериализатора по умолчанию DataContractSerializerдля чтения и записи ошибок следует использовать сериализатор XmlSerializer. |