Teilen über


IRequestChannel.Request Methode

Definition

Sendet eine nachrichtenbasierte Anforderung und gibt die korrelierte nachrichtenbasierte Antwort zurück.

Überlädt

Request(Message)

Sendet eine nachrichtenbasierte Anforderung und gibt die korrelierte nachrichtenbasierte Antwort zurück.

Request(Message, TimeSpan)

Sendet eine nachrichtenbasierte Anforderung und gibt die korrelierte nachrichtenbasierte Antwort innerhalb eines festgelegten Zeitintervalls zurück.

Request(Message)

Quelle:
IRequestChannel.cs
Quelle:
IRequestChannel.cs
Quelle:
IRequestChannel.cs

Sendet eine nachrichtenbasierte Anforderung und gibt die korrelierte nachrichtenbasierte Antwort zurück.

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

Parameter

message
Message

Die zu übertragende Anforderungsnachricht (Message).

Gibt zurück

Die als Antwort auf die Anforderung empfangene Message.

Beispiele

Im folgenden Codebeispiel wird die Implementierung dieser Methode veranschaulicht:

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

Hinweise

Implementierungen von IRequestChannel stellen sicher, dass die Antwortnachricht mit der Anforderungsnachricht korreliert.

Wenn eine Implementierung von IRequestChannel eine Nachricht empfängt, die nicht mit einer ausstehenden Anforderung korreliert, wird diese üblicherweise gelöscht.

Die Request-Methode kann über mehrere Threads gleichzeitig aufgerufen werden.

Die Weitergabe der Nachricht an den Anforderungskanal führt dazu, dass auf die Nachricht zugegriffen wird. Nachdem Sie Request aufgerufen haben, können Sie die Nachricht nicht mehr überprüfen oder für die Nachricht Close aufrufen.

Wenn die Anforderungsnachricht größer ist als die von der verwendeten Bindung maximal zulässige Größe für Nachrichten, wird eine QuotaExceededException ausgelöst. Die maximale Nachrichtengröße wird von der MaxReceivedMessageSize-Eigenschaft festgelegt. Der Standardwert ist 65536 Byte.

Gilt für:

Request(Message, TimeSpan)

Quelle:
IRequestChannel.cs
Quelle:
IRequestChannel.cs
Quelle:
IRequestChannel.cs

Sendet eine nachrichtenbasierte Anforderung und gibt die korrelierte nachrichtenbasierte Antwort innerhalb eines festgelegten Zeitintervalls zurück.

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

Parameter

message
Message

Die zu übertragende Anforderungsnachricht (Message).

timeout
TimeSpan

Die TimeSpan, die das Zeitintervall angibt, innerhalb dessen eine Antwort empfangen werden muss.

Gibt zurück

Die als Antwort auf die Anforderung empfangene Message.

Beispiele

Im folgenden Codebeispiel wird die Implementierung dieser Methode veranschaulicht.

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

Hinweise

Implementierungen von IRequestChannel stellen sicher, dass die Antwortnachricht mit der Anforderungsnachricht korreliert.

Wenn eine Implementierung von IRequestChannel eine Nachricht empfängt, die nicht mit einer ausstehenden Anforderung korreliert, wird diese üblicherweise gelöscht.

Die Request-Methode kann über mehrere Threads gleichzeitig aufgerufen werden.

Die Weitergabe der Nachricht an den Anforderungskanal führt dazu, dass auf die Nachricht zugegriffen wird. Nachdem Sie Request aufgerufen haben, können Sie die Nachricht nicht mehr überprüfen oder für die Nachricht Close aufrufen.

Wenn die Anforderungsnachricht größer ist als die von der verwendeten Bindung maximal zulässige Größe für Nachrichten, wird eine QuotaExceededException ausgelöst. Die maximale Nachrichtengröße wird von der MaxReceivedMessageSize-Eigenschaft festgelegt. Der Standardwert ist 65536 Byte.

Wenn bei Aufruf der Funktion ein timeout überschritten wird, wird dieser Wert verwendet. Wenn SendTimeout für die Bindung gesetzt ist, wird der für die Bindung gesetzte Wert verwendet, wenn kein timeout während des Aufrufs der Funktion festgelegt wird.

Der DefaultSendTimeout wird verwendet, wenn weder für die Bindung noch während des Aufrufs der Funktion ein Timeout gesetzt wird. Der Standardwert ist 1 Minute.

Hinweise für Ausführende

Der Vorgang sollte einen TimeoutException auslösen, wenn der angegebene timeout überschritten wird, bevor der Vorgang abgeschlossen ist.

Gilt für: