Функция 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
Указывает, где должны храниться дополнительные сведения об ошибке в случае сбоя функции.
Возвращаемое значение
Эта функция может возвращать одно из этих значений.
Код возврата | Описание |
---|---|
|
Асинхронная операция по-прежнему находится в состоянии ожидания. |
|
Операция была прервана. |
|
Операция не разрешена из-за текущего состояния объекта . |
|
Подключение к удаленной конечной точке было прервано. |
|
Входные данные не были в ожидаемом формате или не имели ожидаемого значения. |
|
Операция не была завершена в отведенное время. |
|
Превышена квота. |
|
Проверка безопасности не прошла успешно для полученных данных. |
|
Сбой операции безопасности в платформе веб-служб Windows. |
|
Не хватает памяти. |
|
Один или несколько аргументов являются недопустимыми. |
|
Эта функция может возвращать другие ошибки, не перечисленные выше. |
Комментарии
WS_FAULT, отправляемый в тексте сообщения, создается с использованием правил, определенных wsCreateFaultFromError.
Значение WS_ACTION_HEADER , используемое для ответного сообщения, вычисляется следующим образом:
- Если WS_CHANNEL_PROPERTY_ADDRESSING_VERSION канала WS_ADDRESSING_VERSION_TRANSPORT, то никакие действия не включаются в сообщение, так как версия адресации не допускает значение действия для ошибок.
- Если объект error содержит строку действия (длина строки, возвращаемой WS_FAULT_ERROR_PROPERTY_ACTION , больше нуля), используется строка действия.
- Если объект ошибки не содержит действие, то предоставляется значение действия по умолчанию.
Сообщение об ошибке будет содержать сведения о корреляции в соответствии с 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 |