Поделиться через


IRequestChannel.Request Метод

Определение

Отправляет запрос на основе сообщений и возвращает связанный ответ на основе сообщений.

Перегрузки

Request(Message)

Отправляет запрос на основе сообщений и возвращает связанный ответ на основе сообщений.

Request(Message, TimeSpan)

Отправляет запрос на основе сообщений и возвращает связанный ответ на основе сообщений в течение заданного промежутка времени.

Request(Message)

Исходный код:
IRequestChannel.cs
Исходный код:
IRequestChannel.cs
Исходный код:
IRequestChannel.cs

Отправляет запрос на основе сообщений и возвращает связанный ответ на основе сообщений.

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

Параметры

message
Message

Передаваемый запрос Message.

Возвращаемое значение

Сообщение Message, полученное в ответ на запрос.

Примеры

В следующем примере кода показано, как реализовать этот метод.

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

Комментарии

Реализации IRequestChannel обеспечивают корреляцию сообщения ответа с сообщением запроса.

Как правило, если реализация IRequestChannel получает сообщение, которое не соответствует необработанному запросу, оно сбрасывается.

Метод Request можно одновременно вызывать в нескольких потоках.

Передача сообщения в канал запроса открывает доступ к нему. После вызова метода Request невозможно проверить сообщение или вызвать для него метод Close.

Если размер сообщения запроса превышает максимальный размер сообщения, допускаемый используемой привязкой, создается исключение QuotaExceededException. Максимальный размер сообщения задается свойством MaxReceivedMessageSize. Значение по умолчанию — 65 536 байт.

Применяется к

Request(Message, TimeSpan)

Исходный код:
IRequestChannel.cs
Исходный код:
IRequestChannel.cs
Исходный код:
IRequestChannel.cs

Отправляет запрос на основе сообщений и возвращает связанный ответ на основе сообщений в течение заданного промежутка времени.

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

Параметры

message
Message

Передаваемый запрос Message.

timeout
TimeSpan

Объект TimeSpan, который задает промежуток времени, в течение которого должен быть получен ответ.

Возвращаемое значение

Сообщение Message, полученное в ответ на запрос.

Примеры

В следующем примере кода показано, как реализовать этот метод.

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

Комментарии

Реализации IRequestChannel обеспечивают корреляцию сообщения ответа с сообщением запроса.

Как правило, если реализация IRequestChannel получает сообщение, которое не соответствует необработанному запросу, оно сбрасывается.

Метод Request можно одновременно вызывать в нескольких потоках.

Передача сообщения в канал запроса открывает доступ к нему. После вызова метода Request невозможно проверить сообщение или вызвать для него метод Close.

Если размер сообщения запроса превышает максимальный размер сообщения, допускаемый используемой привязкой, создается исключение QuotaExceededException. Максимальный размер сообщения задается свойством MaxReceivedMessageSize. Значение по умолчанию — 65 536 байт.

Это значение используется, если параметр timeout передается во время вызова функции. Если свойство SendTimeout задано в привязке, значение в привязке используется, если при вызове функции не задан параметр timeout.

DefaultSendTimeout используется, если период ожидания не задан ни в привязке, ни при вызове функции. Значение по умолчанию — 1 минута.

Примечания для тех, кто реализует этот метод

Операция должна создать исключение TimeoutException, если до завершения операции превышено заданное значение параметра timeout.

Применяется к