
- •Практическое руководство по программной реализации 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
Типичные способы использования
В следующей таблице перечислены некоторые наиболее часто используемые параметры этого средства.
Параметр |
Описание |
/directory:<каталог> |
Каталог, в котором создаются файлы. По умолчанию: текущий каталог. Сокращенная форма: /d |
/help |
Отображает синтаксис команд и параметров для средства. Сокращенная форма: /? |
/nologo |
Подавляет вывод логотипа и сообщения об авторском праве. |
/svcutilConfig:<файл_конфигурации> |
Задает пользовательский файл конфигурации, который следует использовать вместо файла App.config. С его помощью можно регистрировать расширения system.serviceModel, не изменяя файл конфигурации средства. |
/target:<выходной тип> |
Задает выходные объекты, которые должны быть созданы с помощью средства. Допустимыми значениями являются code, metadata или xmlSerializer. Сокращенная форма: /t |
Создание кода
Svcutil.exe может создавать код для контрактов службы, клиентов и типы данных из документов метаданных. Документы метаданных могут находиться в устойчивом хранилище или извлекаться в оперативном режиме. Извлечение в оперативном режиме происходит либо по протоколу WS-Metadata Exchange, либо по протоколу DISCO (дополнительные сведения см. в разделе "Загрузка метаданных").
Можно использовать средство SvcUtil.exe для создания контрактов службы и данных, основанных на предопределенном документе WSDL. Используйте переключатель /serviceContract и укажите URL-адрес, откуда можно загрузить документ WSDL, или расположение файла, где его можно найти. Это создаст контракты службы и данных, определенные в документе WSDL, которые можно будет использовать для реализации службы жалобы. Дополнительные сведения см. вКак извлечь метаданные и реализовать совместимую службу.
Вместо этого для службы с конечной точкой BasicHttpContextbinding Svcutil.exe создает привязку BasicHttpBinding с атрибутом allowCookies с заданным значением true. Файлы cookie используются для создания контекста на сервере. Если необходимо управлять контекстом в клиенте при использовании службой файлов cookie, можно вручную изменить настройки для использования контекстной привязки.
|
Svcutil.exe создает клиент на основе файла WSDL или файла политики, полученного от службы. Имя участника-пользователя (UPN) создается добавлением к имени пользователя символа "@" и полного доменного имени (FQDN). Однако для пользователей, зарегистрированных в Active Directory, этот формат не является допустимым, и созданное средством имя участника-пользователя вызывает сбой проверки подлинности Kerberos с выдачей сообщения об ошибке "Сбой попытки входа в систему". Чтобы устранить эту проблему, необходимо вручную исправить файл клиента, созданный средством. |
svcutil.exe
[/t:code] <metadataDocumentPath>* | <url>* | <epr>
Аргумент |
Описание | |
epr |
Путь к файлу XML, который содержит ссылку на конечную точку службы WS-Addressing EndpointReference, которая поддерживает WS-Metadata Exchange. Дополнительные сведения см. в разделе "Загрузка метаданных". | |
metadataDocumentPath |
Путь к документу метаданных (wsdl или xsd), который содержит контракт для импортирования в код (.wsdl, .xsd, .wspolicy или .wsmex). Svcutil следит за ходом импортирования и включает удаленный URL-адрес для метаданных, когда указано пользователем. Однако если файлы метаданных необходимо обработать в локальной файловой системе, все файлы следует задавать в этом аргументе. Таким образом, Svcutil можно использовать в среде построения, где отсутствуют сетевые зависимости. Для этого аргумента можно использовать подстановочные знаки (например, XSD, WSDL). | |
url |
URL-адрес конечной точки службы, предоставляющей метаданные, или документа метаданных, размещенного в сети. Дополнительные сведения об извлечении этих документов см. в разделе "Загрузка метаданных". | |
Параметр |
Описание | |
/async |
Создает сигнатуры как синхронных, так и асинхронных методов. По умолчанию: создает только сигнатуры синхронных методов. Сокращенная форма: /a | |
/collectionType:<тип> |
Создает сигнатуры как синхронных, так и асинхронных методов. По умолчанию: создает только сигнатуры синхронных методов. Сокращенная форма: /a | |
/config:<файл_конфигурации> |
Задает имя файла для создаваемого файла конфигурации. По умолчанию: output.config | |
/dataContractOnly |
Создает код только для типов контрактов данных. Типы контрактов службы не созданы. Для этого параметра следует задавать только локальные файлы метаданных. Сокращенная форма: /dconly | |
/enableDataBinding |
Реализует интерфейс INotifyPropertyChangedдля всех типов контрактов данных для обеспечения привязки данных. Сокращенная форма: /edb | |
/excludeType:<тип> |
Задает полное имя типа или имя типа с указанием на сборку, который необходимо исключить из ссылочных типов контракта. При использовании этого переключателя вместе с /r из отдельных библиотек DLL создается ссылка на полное имя класса XSD. Сокращенная форма: /et | |
/importXmlTypes |
Служит для настройки сериализатора контракта данных для импортирования типов, отличных от типов контракта данных, в качестве типов IXmlSerializable. | |
/internal |
Создает классы, помеченные как внутренние. По умолчанию: создает только открытые классы. Сокращенная форма: /i | |
/language:<язык> |
Задает язык программирования, используемый для создания кода. Необходимо указать либо имя языка, зарегистрированное в файле Machine.config, либо полное имя класса, наследуемого от CodeDomProvider. Значения: c#, cs, csharp, vb, visualbasic, c++, cpp По умолчанию: csharp Сокращенная форма: /l
Переключатель поддерживает только С++ для поставщика кода, который поставляется с Visual Studio 2005 SP1. | |
/mergeConfig |
Объединяет созданную конфигурацию с существующим файлом (вместо перезаписи существующего файла). | |
/messageContract |
Создает типы контрактов сообщений. Сокращенная форма: /mc | |
/namespace:<string,string> |
Задает сопоставление атрибута targetNamespace WSDL или схемы XML пространству имен среды CLR. Использование подстановочного знака '*' для атрибута targetNamespace позволяет сопоставить все атрибуты targetNamespace без явного сопоставления пространству имен среды CLR. Чтобы убедиться, что имя контракта сообщения не конфликтует с именем операции, необходимо дополнить ссылку на тип двойными двоеточиями (::) или задать уникальные имена. По умолчанию: для контрактов данных выводится из целевого пространства имен документа схемы. Для всех остальных создаваемых типов используется пространство имен по умолчанию. Сокращенная форма: /n | |
/noConfig |
Запрещает создавать файлы конфигурации. | |
/noStdLib |
Запрещает ссылаться на стандартные библиотеки. По умолчанию: создаются ссылки на файлы Mscorlib.dll и System.servicemodel.dll. | |
/out:<файл> |
Задает имя файла созданного кода. По умолчанию: наследуется от имени определения WSDL, имени службы WSDL или целевого пространства имен одной из схем. Сокращенная форма: /o | |
/reference:<путь к файлу> |
Ссылается на типы в заданной сборке. При создании клиентов необходимо использовать этот параметр для задания сборок, которые могут содержать типы, представляющие импортируемые метаданные. С помощью этого переключателя невозможно задать контракты сообщений и типы XmlSerializer. При ссылке на DateTimeOffsetвместо создания нового типа используется этот тип. Если приложение создано с использованием .NET Framework 3.5, SvcUtil.exe автоматически ссылается наDateTimeOffset. Сокращенная форма: /r | |
/serializable |
Создает классы, помеченные сериализуемым атрибутом. Сокращенная форма: /s | |
/serviceContract |
Сформировать код только для контрактов службы. Класс клиента и его конфигурация не будут сформированы. Сокращенная форма: /sc | |
/serializer:Auto |
Создает классы, помеченные сериализуемым атрибутом. Сокращенная форма: /s | |
/serializer:DataContractSerializer |
Создает типы данных, использующие сериализатор контракта данных для сериализации и десериализации. Сокращенная форма: /ser:DataContractSerializer | |
/serializer:XmlSerializer |
Создает типы данных, использующие для сериализации и десериализации сериализатор XmlSerializer. Сокращенная форма: /ser:XmlSerializer | |
/targetClientVersion |
Указывает, на какую версию .NET Framework нацелено приложение. Допустимые значения: Version30 и Version35. Значением по умолчанию является Version30. Сокращенная форма: /tcv Version30
: при создании кода для клиентов,
работающих с WinFX, следует использовать
Version35
: при создании кода для клиентов,
работающих с .NET Framework 3.5, следует
использовать | |
/wrapped |
Определяет, используется ли особый подход для документов со стилем document-literal с параметрами в оболочке. Используйте ключ /wrappedсо средствомСлужебное средство ServiceModel Metadata Utility Tool (Svcutil.exe)для указания обычного регистра. |
|
Если привязка службы предоставляется системой (см. раздел Привязки, предоставляемые системой) и свойствуProtectionLevelзадано значение None или Sign, Svcutil создает файл конфигурации с использованием элемента<customBinding>, а не элемента, предоставляемого системой. Например, если служба использует элемент <wsHttpBinding>, свойству ProtectionLevel которого задано значение Sign, раздел привязок создаваемой конфигурации будет содержать <customBinding> вместо <wsHttpBinding>. Дополнительную информацию об уровне защиты можно найти в разделеОсновные сведения об уровне защиты. |