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


Функция WsSendFaultMessageForError (webservices.h)

Отправляет сообщение об ошибке по WS_ERROR объекту.

Синтаксис

HRESULT WsSendFaultMessageForError(
  [in]           WS_CHANNEL             *channel,
  [in]           WS_MESSAGE             *replyMessage,
  [in]           WS_ERROR               *faultError,
  [in]           HRESULT                faultErrorCode,
  [in]           WS_FAULT_DISCLOSURE    faultDisclosure,
  [in]           WS_MESSAGE             *requestMessage,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

Параметры

[in] channel

Канал для отправки сообщения.

[in] replyMessage

Объект сообщения, используемый для отправки ответного сообщения.

Объект message должен находиться в WS_MESSAGE_STATE_EMPTY или WS_MESSAGE_STATE_INITIALIZED. Если указано инициализированное сообщение, оно должно быть инициализировано с помощью WS_FAULT_MESSAGE.

[in] faultError

Объект ошибки, используемый для создания ошибки.

[in] faultErrorCode

Код ошибки, связанной с ошибкой. Это не может быть кодом успешного выполнения.

Этот код ошибки никогда не включается в сообщение об ошибке напрямую, а используется в качестве резервного механизма для создания строки сбоя в случае, если объект WS_ERROR не содержит строк ошибок.

[in] faultDisclosure

Определяет, сколько сведений об ошибке включено в сообщение об ошибке.

[in] requestMessage

Сообщение запроса. Он используется для получения сведений о корреляции, используемых при составлении ответного сообщения.

Сообщение может находиться в любом состоянии, но WS_MESSAGE_STATE_EMPTY.

[in, optional] asyncContext

Сведения об асинхронном вызове функции или значении NULL при синхронном вызове.

[in, optional] error

Указывает, где должны храниться дополнительные сведения об ошибке в случае сбоя функции.

Возвращаемое значение

Эта функция может возвращать одно из этих значений.

Код возврата Описание
WS_S_ASYNC
Асинхронная операция по-прежнему находится в состоянии ожидания.
WS_E_OPERATION_ABORTED
Операция была прервана.
WS_E_INVALID_OPERATION
Операция не разрешена из-за текущего состояния объекта .
WS_E_ENDPOINT_DISCONNECTED
Подключение к удаленной конечной точке было прервано.
WS_E_INVALID_FORMAT
Входные данные не были в ожидаемом формате или не имели ожидаемого значения.
WS_E_OPERATION_TIMED_OUT
Операция не была завершена в отведенное время.
WS_E_QUOTA_EXCEEDED
Превышена квота.
WS_E_SECURITY_VERIFICATION_FAILURE
Проверка безопасности не прошла успешно для полученных данных.
WS_E_SECURITY_SYSTEM_FAILURE
Сбой операции безопасности в платформе веб-служб Windows.
E_OUTOFMEMORY
Не хватает памяти.
E_INVALIDARG
Один или несколько аргументов являются недопустимыми.
Другие ошибки
Эта функция может возвращать другие ошибки, не перечисленные выше.

Комментарии

WS_FAULT, отправляемый в тексте сообщения, создается с использованием правил, определенных wsCreateFaultFromError.

Значение WS_ACTION_HEADER , используемое для ответного сообщения, вычисляется следующим образом:

  • Если WS_CHANNEL_PROPERTY_ADDRESSING_VERSION канала WS_ADDRESSING_VERSION_TRANSPORT, то никакие действия не включаются в сообщение, так как версия адресации не допускает значение действия для ошибок.
  • Если объект error содержит строку действия (длина строки, возвращаемой WS_FAULT_ERROR_PROPERTY_ACTION , больше нуля), используется строка действия.
  • Если объект ошибки не содержит действие, то предоставляется значение действия по умолчанию.
Если объект error содержит заголовок, используемый для описания ошибки, как указано в WS_FAULT_ERROR_PROPERTY_HEADER, то заголовок добавляется к заголовкам сообщения об ошибке.

Сообщение об ошибке будет содержать сведения о корреляции в соответствии с WS_ADDRESSING_VERSION. Дополнительные сведения о сопоставлении сообщений ответа на запросы см. в разделе Общие сведения об уровне канала.

При отправке ошибки без объекта WS_ERROR используйте WsSendReplyMessage.

Чтобы добавить пользовательские заголовки в сообщение, инициализируйте сообщение WsInitializeMessage с помощью WS_FAULT_MESSAGE , а затем добавьте заголовки с помощью WsAddCustomHeader перед вызовом этой функции.

Требования

   
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header webservices.h
Библиотека WebServices.lib
DLL WebServices.dll