Compartir a través de


IRequestChannel.Request Método

Definición

Envía una solicitud basada en mensaje y devuelve la respuesta basada en mensaje correlacionada.

Sobrecargas

Request(Message)

Envía una solicitud basada en mensaje y devuelve la respuesta basada en mensaje correlacionada.

Request(Message, TimeSpan)

Envía una solicitud basada en mensaje y devuelve la respuesta basada en mensaje correlacionada dentro de un intervalo de tiempo especificado.

Request(Message)

Source:
IRequestChannel.cs
Source:
IRequestChannel.cs
Source:
IRequestChannel.cs

Envía una solicitud basada en mensaje y devuelve la respuesta basada en mensaje correlacionada.

public:
 System::ServiceModel::Channels::Message ^ Request(System::ServiceModel::Channels::Message ^ message);
public System.ServiceModel.Channels.Message Request (System.ServiceModel.Channels.Message message);
abstract member Request : System.ServiceModel.Channels.Message -> System.ServiceModel.Channels.Message
Public Function Request (message As Message) As Message

Parámetros

message
Message

La solicitud Message que se va a transmitir.

Devoluciones

Message recibido en respuesta a la solicitud.

Ejemplos

En el código siguiente se muestra cómo implementar este método:

public Message Request(Message message)
{
    return this.InnerChannel.Request(message);
}

Comentarios

Las implementaciones de IRequestChannel garantizan que el mensaje de respuesta está correlacionado con el mensaje de solicitud.

Generalmente, si una implementación de IRequestChannel recibe un mensaje que no está correlacionado con una solicitud pendiente, se elimina.

Se puede llamar al método Request concurrentemente mediante varios subprocesos.

Pasar el mensaje al canal de solicitud hace que se tenga acceso al mensaje. Después de llamar a Request, ya no podrá inspeccionar el mensaje ni llamar a Close en el mensaje.

Si el mensaje de solicitud es mayor que el tamaño de mensaje máximo permitido por el enlace utilizado, se inicia QuotaExceededException. La propiedad MaxReceivedMessageSize establece el tamaño del mensaje máximo. El valor predeterminado es 65 536 bytes.

Se aplica a

Request(Message, TimeSpan)

Source:
IRequestChannel.cs
Source:
IRequestChannel.cs
Source:
IRequestChannel.cs

Envía una solicitud basada en mensaje y devuelve la respuesta basada en mensaje correlacionada dentro de un intervalo de tiempo especificado.

public:
 System::ServiceModel::Channels::Message ^ Request(System::ServiceModel::Channels::Message ^ message, TimeSpan timeout);
public System.ServiceModel.Channels.Message Request (System.ServiceModel.Channels.Message message, TimeSpan timeout);
abstract member Request : System.ServiceModel.Channels.Message * TimeSpan -> System.ServiceModel.Channels.Message
Public Function Request (message As Message, timeout As TimeSpan) As Message

Parámetros

message
Message

La solicitud Message que se va a transmitir.

timeout
TimeSpan

TimeSpan que especifica el intervalo de tiempo dentro del cual se debe recibir una respuesta.

Devoluciones

Message recibido en respuesta a la solicitud.

Ejemplos

En el código siguiente se muestra cómo implementar este método.

public Message Request(Message message, TimeSpan timeout)
{
    return this.InnerChannel.Request(message, timeout);
}

Comentarios

Las implementaciones de IRequestChannel garantizan que el mensaje de respuesta está correlacionado con el mensaje de solicitud.

Generalmente, si una implementación de IRequestChannel recibe un mensaje que no está correlacionado con una solicitud pendiente, se elimina.

Se puede llamar al método Request concurrentemente mediante varios subprocesos.

Pasar el mensaje al canal de solicitud hace que se tenga acceso al mensaje. Después de llamar a Request, ya no podrá inspeccionar el mensaje ni llamar a Close en el mensaje.

Si el mensaje de solicitud es mayor que el tamaño de mensaje máximo permitido por el enlace utilizado, se inicia QuotaExceededException. La propiedad MaxReceivedMessageSize establece el tamaño del mensaje máximo. El valor predeterminado es 65 536 bytes.

Si se pasa timeout mientras se llama a la función, se utiliza ese valor. Si SendTimeout se establece en el enlace, se utiliza el valor en el enlace si no se especifica timeout mientras se llama a la función.

DefaultSendTimeout se utiliza si no se especifica el tiempo de espera en el enlace o mientras se llama a la función. Este valor predeterminado es 1 minuto.

Notas a los implementadores

La operación debería iniciar TimeoutException si se supera el timeout especificado antes de que se complete la operación.

Se aplica a