Поделиться через


структура WS_FAULT (webservices.h)

Ошибка — это значение, переносимое в тексте сообщения, которое сообщает о сбое обработки. Ошибки моделироваются с помощью структуры WS_FAULT .

Синтаксис

typedef struct _WS_FAULT {
  WS_FAULT_CODE   *code;
  WS_FAULT_REASON *reasons;
  ULONG           reasonCount;
  WS_STRING       actor;
  WS_STRING       node;
  WS_XML_BUFFER   *detail;
} WS_FAULT;

Члены

code

Заголовок списка кодов ошибок, определяющих тип сбоя.

Коды ошибок упорядочены от наиболее общих к наиболее конкретным. Должен быть хотя бы один код ошибки. Первый код ошибки должен соответствовать коду сбоя, определенному протоколом SOAP. Для WS_ENVELOPE_VERSION_SOAP_1_1 сериализуется только наиболее конкретный код сбоя (первый код в списке).

Если URI пространства имен первого кода сбоя является пустой строкой, то при сериализации ошибки первый код сбоя будет преобразован следующим образом:

  • Соответствующее пространство имен SOAP будет использоваться на основе WS_ENVELOPE_VERSION.
  • Если при использовании WS_ENVELOPE_VERSION_SOAP_1_1 локальное имя — "Отправитель", вместо него будет использоваться "Клиент".
  • Если локальное имя — "Receiver" при использовании WS_ENVELOPE_VERSION_SOAP_1_1, то вместо него будет использоваться слово "Server".
Эти преобразования позволяют указать код ошибки SOAP, не беспокоясь о том, какая версия SOAP используется.

reasons

Текст, описывающий ошибку. Это массив для разных языков.

reasonCount

Число причин в массиве причин. Это было бы несколько, если бы текст был представлен на нескольких языках. Должна существовать по крайней мере одна причина сбоя.

Для WS_ENVELOPE_VERSION_SOAP_1_1 сериализуется только первая причина.

actor

Имя процессора, вызвавшего сбой. Если строка имеет нулевую длину, предполагается, что она является конечной точкой.

node

Расположение процессора, вызвавшего сбой. Если строка имеет нулевую длину, предполагается, что она является конечной точкой.

Для WS_ENVELOPE_VERSION_SOAP_1_1 это значение не сериализуется.

detail

Сведения об ошибке позволяют включить XML-содержимое вместе со сбоем. Если нет сведений, это поле может иметь значение NULL.

Для WS_ENVELOPE_VERSION_SOAP_1_1 этот параметр следует использовать только в том случае, если ошибка не связана с обработкой заголовка сообщения. Ошибки, связанные с заголовками, должны использовать пользовательский заголовок для передачи сведений о сбое.

При наличии сведений об ошибке WS_XML_BUFFER должен содержать элемент, соответствующий элементу detail ошибки SOAP. Xml-содержимое для конкретного сбоя содержится в элементе detail. Локальное имя и пространство имен элемента игнорируются; они заменяются соответствующим именем элемента в соответствии с WS_ENVELOPE_VERSION при записи элемента detail.

Требования

   
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Верхняя часть webservices.h