IRequestChannel.Request Method (Message)
Sends a message-based request and returns the correlated message-based response.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
'Declaration Function Request ( _ message As Message _ ) As Message
Message Request( Message message )
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.
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.
The following code illustrates how to implement this method:
' Initialize request channel factory with a binding and a remote endpoint address. Dim binding As New BasicHttpBinding() Dim address As New EndpointAddress("http://localhost:8000/ChannelApp") Dim factory As New ChannelFactory(Of IRequestChannel)(binding, address) ' Create an IRequestChannel object and open it. Dim channel As IRequestChannel = factory.CreateChannel() channel.Open() ' Get the endpoint address for the channel. Dim epa As EndpointAddress = channel.RemoteAddress ' Get the transport address for the channel. Dim via As Uri = channel.Via ' Send a request message on the channel. Dim request As Message = Message.CreateMessage(MessageVersion.Soap11, "hello") ' Request sent and correlated with a reply message. Dim reply As Message = channel.Request(request) reply.Close() channel.Close() factory.Close()
// Initialize request channel factory with a binding and a remote endpoint address. BasicHttpBinding binding = new BasicHttpBinding(); EndpointAddress address = new EndpointAddress("http://localhost:8000/ChannelApp"); ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, address); // Create an IRequestChannel object and open it. IRequestChannel channel = factory.CreateChannel(); channel.Open(); // Get the endpoint address for the channel. EndpointAddress epa = channel.RemoteAddress; // Get the transport address for the channel. Uri via = channel.Via; // Send a request message on the channel. Message request = Message.CreateMessage(MessageVersion.Soap11, "hello"); // Request sent and correlated with a reply message. Message reply = channel.Request(request); reply.Close(); channel.Close(); factory.Close();
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
Supported in: Windows Phone OS 7.0
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.