Compartir a través de


Mensaje (servicios web de Windows)

Un mensaje es un objeto que encapsula los datos que se transmiten o reciben. La estructura de un mensaje se define mediante SOAP e incluye un conjunto de encabezados y un cuerpo. Los encabezados siempre se almacenan en búfer en la memoria, pero el cuerpo se lee y escribe con una API de streaming.

Diagram showing a message with the header being buffered and the body being streamed.

Los mensajes tienen un conjunto de propiedades que se pueden usar para especificar configuraciones opcionales que controlan el comportamiento de un mensaje y para proporcionar una manera de recuperar información adicional sobre los mensajes recibidos (como la información de seguridad). Consulte WS_MESSAGE_PROPERTY_ID para obtener una lista completa de las propiedades del mensaje.

Un mensaje se dirige a una Dirección de punto de conexión específica.

Un WS_FAULT es un tipo especial de contenido de mensaje usado para representar errores devueltos desde un punto de conexión remoto.

Los mensajes se someten a una codificación que transforma el XML en un formato de conexión lineal antes de transmitirse.

Para obtener más información sobre los mensajes, consulte el tema Información general sobre la capa de canal.

En los ejemplos siguientes se muestra el uso de mensajes en WWSAPI.

Ejemplo Descripción
CustomHeaderExample Muestra el uso de encabezados de mensaje personalizados.
MessageEncodingExample Muestra la codificación y descodificación de un mensaje.
ForwardMessageExample Muestra el reenvío de un mensaje.

 

Los siguientes elementos de API se usan con mensajes.

Devolución de llamada Descripción
WS_MESSAGE_DONE_CALLBACK Notifica al autor de la llamada que el mensaje ha completado su uso de la estructura WS_XML_READER que se proporcionó a la función WsReadEnvelopeStart o de la estructura de WS_XML_WRITER proporcionada a la función WsWriteEnvelopeStart.

 

Enumeración Descripción
WS_ADDRESSING_VERSION Versión de la especificación utilizada para los encabezados de direccionamiento.
WS_ENVELOPE_VERSION Versión de la especificación utilizada para la estructura de sobre.
WS_HEADER_ATTRIBUTES Conjunto de marcas que representan los atributos SOAP mustUnderstand y relay de un encabezado.
WS_HEADER_TYPE Tipo del encabezado.
WS_MESSAGE_INITIALIZATION Especifica qué encabezados debe agregar WsInitializeMessage al mensaje.
WS_MESSAGE_PROPERTY_ID El id. de cada propiedad de mensaje.
WS_MESSAGE_STATE Estado del mensaje.

 

Función Descripción
WsAddressMessage Asigna una dirección de destino a un mensaje.
WsCheckMustUnderstandHeaders Comprueba que el receptor entienda adecuadamente los encabezados especificados.
WsCreateMessage Crea una instancia de un objeto WS_MESSAGE.
WsCreateMessageForChannel Crea un mensaje adecuado para su uso con un canal específico.
WsFillBody Garantiza que haya un número suficiente de bytes disponibles en un mensaje para leer.
WsFlushBody Vacía todos los datos acumulados del cuerpo del mensaje que se hayan escrito.
WsFreeMessage Libera el recurso de memoria asociado a un mensaje.
WsGetCustomHeader Busca el encabezado definido por la aplicación del mensaje y lo deserializa.
WsGetHeader Busca un encabezado estándar determinado en el mensaje y lo deserializa.
WsGetHeaderAttributes Rellena un parámetro ULONG con el WS_HEADER_ATTRIBUTES del elemento de encabezado en el que se coloca el lector.
WsGetMessageProperty Recupera una propiedad del objeto Message especificada.
WsInitializeMessage Inicializa los encabezados del mensaje como preparación para su procesamiento.
WsMarkHeaderAsUnderstood Marca un encabezado tal como lo entiende la aplicación.
WsReadBody Deserializa un valor del Lector XML del mensaje.
WsReadEnvelopeEnd Lee los elementos de cierre de un mensaje.
WsReadEnvelopeStart Lee los encabezados del mensaje y se prepara para leer los elementos del cuerpo.
WsRemoveCustomHeader Quita un encabezado personalizado del mensaje.
WsRemoveHeader Quita el objeto WS_HEADER_TYPE estándar de un mensaje.
WsResetMessage Vuelve a establecer el estado de mensaje en WS_MESSAGE_STATE_EMPTY.
WsSetHeader Agrega o reemplaza el encabezado estándar especificado en el mensaje.
WsWriteBody Escribe un valor en el cuerpo de un mensaje.
WsWriteEnvelopeEnd Escribe los elementos de cierre de un mensaje.
WsWriteEnvelopeStart Escribe el inicio del mensaje, incluido el conjunto actual de encabezados del mensaje y se prepara para escribir los elementos del cuerpo.

 

Handle Descripción
WS_MESSAGE Tipo opaco que se usa para hacer referencia a un objeto de mensaje.

 

Estructura Descripción
WS_FAULT Valor de error llevado en el cuerpo de un mensaje que indica un error de procesamiento.
WS_FAULT_CODE Representa un código de error.
WS_FAULT_REASON Contiene una explicación del error.
WS_MESSAGE_PROPERTIES Especifica un conjunto de estructuras de WS_MESSAGE_PROPERTY.
WS_MESSAGE_PROPERTY Especifica una configuración específica del mensaje.