Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Начиная с версии .NET Framework 4.5, Windows Workflow Foundation (WF) обеспечивает лучшую интеграцию веб-служб и рабочих процессов в виде разработки на основе контракта. Средство разработки рабочих процессов на основе контракта позволяет создать контракт в Code First. Затем это средство автоматически создает в наборе инструментов шаблон операции для операций в контракте. В этом разделе содержатся общие сведения о том, как действия и свойства в службе рабочих процессов сопоставляются с атрибутами контракта службы. Чтобы получить пошаговый пример создания службы рабочего процесса на основе подхода "сначала контракт", см. статью «Практическое руководство: Создание службы рабочего процесса, использующей существующий контракт службы».
В этом разделе
Сопоставление атрибутов контракта службы с атрибутами рабочего процесса
Таблицы в следующих разделах показывают различные атрибуты и свойства WCF, а также как они сопоставляются с действиями по обмену сообщениями и их свойствами в рабочем процессе на основе контракта.
Атрибуты контракта службы
| Имя свойства | Поддерживается | Описание | Проверка рабочего процесса |
|---|---|---|---|
| CallbackContract | нет | Возвращает или задает тип контракта обратного вызова, если контракт является дуплексным. | (не определено) |
| ИмяКонфигурации | нет | Возвращает или задает имя, используемое для поиска службы в файле конфигурации приложения. | (не определено) |
| ИмеетУровеньЗащиты | Да | Возвращает значение, указывающее, присвоен ли участнику уровень защиты. | Свойство Receive.ProtectionLevel не должно иметь значение NULL. |
| Имя. | Да | Возвращает или задает имя <элемента portType> в языке описания веб-служб (WSDL). | Свойство Receive.ServiceContractName.LocalName должно совпадать. |
| Пространство имен | Да | Возвращает или задает пространство имен элемента <portType> в WSDL (язык описания веб-служб). | Свойство Receive.ServiceContractName.NameSpace должно соответствовать. |
| УровеньЗащиты | Да | Указывается, должно ли связывание для контракта поддерживать уровень защиты, заданный в свойстве ProtectionLevel. | Свойство Receive.ProtectionLevel должен совпадать. |
| РежимСеанса | нет | Возвращает или задает значение, указывающее, разрешены, запрещены или требуются ли сеансы. | (не определено) |
| TypeId | нет | Возвращает уникальный идентификатор для этого атрибута при реализации в производном классе. (Наследуется от атрибута.) | (не определено) |
Вставьте сюда основной текст подраздела.
Атрибуты операционного контракта
| Имя свойства | Поддерживается | Описание | Проверка рабочего процесса |
|---|---|---|---|
| Действие | Да | Возвращает или задает действие WS-Addressing для сообщения запроса. | Свойство Receive.Action должно согласовываться. |
| Асинхронный шаблон | нет | Указывает, что операция реализуется асинхронно с помощью пары методов Begin<methodName> и End<methodName> в контракте службы. | (не определено) |
| ИмеетУровеньЗащиты | Да | Получает значение, указывающее, должны ли сообщения для этой операции быть зашифрованы, подписаны или и то, и другое. | Свойство Receive.ProtectionLevel не должно иметь значение NULL. |
| IsInitiating | нет | Возвращает или задает значение, указывающее, реализует ли метод операцию, которая может инициировать сеанс на сервере (если такой сеанс существует). | (не определено) |
| IsOneWay | Да | Возвращает или задает значение, указывающее, возвращает ли операция ответное сообщение. | (Не существует SendReply для этого Receive ИЛИ ReceiveReply для этого Send.) |
| Завершается | нет | Возвращает или задает значение, указывающее, приводит ли операция службы к закрытию сеанса сервером после отправки ответного сообщения, если оно есть. | (не определено) |
| Имя. | Да | Возвращает или задает имя операции. | Свойство Receive.OperationName должно соответствовать. |
| УровеньЗащиты | Да | Возвращает или задает значение, указывающее, должны ли сообщения операции быть зашифрованы, подписаны или и то, и другое. | Свойство Receive.ProtectionLevel должен совпадать. |
| ОтветноеДействие | Да | Возвращает или задает значение действия SOAP для ответного сообщения операции. | Свойство SendReply.Action должно совпадать. |
| TypeId | нет | Возвращает уникальный идентификатор для этого атрибута при реализации в производном классе. (Наследуется от атрибута.) | (не определено) |
Атрибуты контракта сообщения
| Имя свойства | Поддерживается | Описание | Проверка рабочего процесса |
|---|---|---|---|
| ИмеетУровеньЗащиты | Да | Возвращает значение, указывающее, присвоен ли сообщению уровень защиты. | Проверка не выполняется (Receive.Content и SendReply.Content должны соответствовать типу контракта сообщения). |
| Завернуто | Да | Возвращает или задает значение, указывающее, имеет ли текст сообщения элемент программы-оболочки. | Проверка не выполняется (Receive.Content и Sendreply.Content должны согласовываться с типом контракта сообщения). |
| УровеньЗащиты | нет | Возвращает или задает значение, указывающее, необходимо ли шифровать сообщение, подписывать его или и то и другое. | (не определено) |
| TypeId | Да | Возвращает уникальный идентификатор для этого атрибута при реализации в производном классе. (Наследуется от атрибута.) | Проверка не выполняется (Receive.Content и SendReply.Content должны соответствовать типу контракта сообщения). |
| Имя оболочки | Да | Возвращает или задает имя элемента-оболочки текста сообщения. | Проверка не выполняется (Receive.Content и SendReply.Content должны соответствовать типу контракта сообщения). |
| Пространство оболочки | нет | Возвращает или задает пространство имен обертки тела сообщения. | (не определено) |
Атрибуты контракта данных
| Имя свойства | Поддерживается | Описание | Проверка рабочего процесса |
|---|---|---|---|
| IsReference | нет | Возвращает или задает значение, указывающее, следует ли сохранять данные ссылки на объект. | (не определено) |
| Имя. | Да | Возвращает или задает имя контракта данных для типа. | Проверка не выполняется (Receive.Content и SendReply.Content должны соответствовать типу контракта сообщения). |
| Пространство имен | Да | Возвращает или задает пространство имен для контракта данных типа. | Проверка не выполняется (Receive.Content и SendReply.Content должны соответствовать типу контракта сообщения). |
| TypeId | нет | Возвращает уникальный идентификатор для этого атрибута при реализации в производном классе. (Наследуется от атрибута.) | (не определено) |
Атрибуты контракта сбоя
| Имя свойства | Поддерживается | Описание | Проверка рабочего процесса |
|---|---|---|---|
| Действие | Да | Возвращает или задает действие сообщения об ошибке SOAP, которое задается как компонент контракта операции. | Свойство SendReply.Action должно совпадать. |
| Тип деталей | Да | Возвращает тип сериализуемого объекта, который содержит информацию об ошибке. | Свойство SendReply.Content должно соответствовать заданному типу. |
| ИмеетУровеньЗащиты | нет | Возвращает значение, указывающее, присвоен ли сообщению об ошибке SOAP уровень защиты. | (не определено) |
| Имя. | нет | Возвращает или задает имя сообщения о пользовательской ошибке в языке описания веб-сервисов (WSDL). | (не определено) |
| Пространство имен | нет | Возвращает или задает пространство имен ошибки SOAP. | (не определено) |
| УровеньЗащиты | нет | Задает уровень защиты, который требуется для ошибки SOAP от связывания. | (не определено) |
| TypeId | нет | Возвращает уникальный идентификатор для этого атрибута при реализации в производном классе. (Наследуется от атрибута.) | (не определено) |
Дополнительные сведения о поддержке и реализации
Неподдерживаемые функции контракта службы
Использовать библиотеку параллельных задач (TPL) в контрактах невозможно.
Наследование в контрактах службы не поддерживается.
Создание настроенных активностей обмена сообщениями
Два общедоступных статических метода добавляются в действия Receive и SendReply для поддержки создания предварительно сконфигурированных действий сообщения, если используются службы рабочих процессов на основе контракта.
Действие, создаваемое этими методами, должно пройти проверку по контракту и поэтому используется внутренне в рамках логики проверки для Receive и SendReply. Элементы OperationName, ServiceContractName, Action, SerializerOption, ProtectionLevel и KnownTypes все предварительно настроены для соответствия импортированному контракту. На странице свойств содержимого для действий в конструкторе рабочих процессов разделы "Сообщение" или "Параметры" также предварительно настроены для соответствия контракту.
Контракты сбоя WCF также обрабатываются путем возврата отдельного набора настроенных SendReply действий для каждой из ошибок, которые отображаются в FaultsFaultDescriptionCollection.
Для других частей OperationDescription , которые неподдерживаются службами WF сегодня (например, поведение WebGet/WebInvoke или пользовательское поведение операций), API будет игнорировать эти значения в рамках создания и настройки. Исключения не выбрасываются.