IRequestChannel.Request Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Sends a message-based request and returns the correlated message-based response.
Overloads
Request(Message) |
Sends a message-based request and returns the correlated message-based response. |
Request(Message, TimeSpan) |
Sends a message-based request and returns the correlated message-based response within a specified interval of time. |
Request(Message)
- Source:
- IRequestChannel.cs
Sends a message-based request and returns the correlated message-based response.
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
Parameters
Returns
The Message received in response to the request.
Examples
The following code shows how to implement this method:
public Message Request(Message message)
{
return this.InnerChannel.Request(message);
}
Remarks
Implementations of IRequestChannel ensure that the response message is correlated with the request message.
Generally, if an implementation of IRequestChannel receives a message that is not correlated to an outstanding request, it is dropped.
The Request method can be called concurrently across multiple threads.
Passing the message into the request channel causes the message to be accessed. After you call Request, you can no longer inspect the message or call Close on the message.
If the request message is larger that the maximum message size allowed by the binding being used, a QuotaExceededException is thrown. The maximum message size is set by the MaxReceivedMessageSize property. The default value is 65536 bytes.
Applies to
Request(Message, TimeSpan)
- Source:
- IRequestChannel.cs
Sends a message-based request and returns the correlated message-based response within a specified interval of time.
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
Parameters
- timeout
- TimeSpan
The TimeSpan that specifies the interval of time within which a response must be received.
Returns
The Message received in response to the request.
Examples
The following code shows how to implement this method.
public Message Request(Message message, TimeSpan timeout)
{
return this.InnerChannel.Request(message, timeout);
}
Remarks
Implementations of IRequestChannel ensure that the response message is correlated with the request message.
Generally, if an implementation of IRequestChannel receives a message that is not correlated to an outstanding request, it is dropped.
The Request method can be called concurrently across multiple threads.
Passing the message into the request channel causes the message to be accessed. After you call Request, you can no longer inspect the message or call Close on the message.
If the request message is larger that the maximum message size allowed by the binding being used, a QuotaExceededException is thrown. The maximum message size is set by the MaxReceivedMessageSize property. The default value is 65536 bytes.
If a timeout
is passed while calling the function then that value is used. If the SendTimeout is set on the binding, then the value on the binding is used if no timeout
is specified while calling the function.
The DefaultSendTimeout is used if no timeout is specified on either the binding or while calling the function. This default value is 1 minute.
Notes to Implementers
The operation should throw a TimeoutException if the specified timeout
is exceeded before the operation is completed.