IRequestChannel.Request 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳送訊息型要求,並傳回相互關聯的訊息型回應。
多載
Request(Message) |
傳送訊息型要求,並傳回相互關聯的訊息型回應。 |
Request(Message, TimeSpan) |
傳送訊息型要求,並在指定的時間間隔內傳回相互關聯的訊息型回應。 |
Request(Message)
傳送訊息型要求,並傳回相互關聯的訊息型回應。
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。
範例
下列程式碼會示範如何實作這個方法:
public Message Request(Message message)
{
return this.InnerChannel.Request(message);
}
備註
IRequestChannel 的實作可確保回應訊息與要求訊息之間有相互關聯性。
一般來說,當 IRequestChannel 的實作收到與未處理的要求不相關的訊息時,會將它捨棄。
Request 方法可以在多個執行緒上同時呼叫。
將訊息傳遞給要求通道會造成該訊息遭到存取。 當您呼叫 Request 之後,便無法再檢查此訊息,或針對此訊息呼叫 Close。
如果要求訊息大於要使用之繫結所允許的訊息大小上限,則會擲回 QuotaExceededException。 訊息大小上限是由 MaxReceivedMessageSize 屬性所設定。 預設值為 65536 個位元組。
適用於
Request(Message, TimeSpan)
傳送訊息型要求,並在指定的時間間隔內傳回相互關聯的訊息型回應。
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。
範例
下列程式碼會示範如何實作這個方法。
public Message Request(Message message, TimeSpan timeout)
{
return this.InnerChannel.Request(message, timeout);
}
備註
IRequestChannel 的實作可確保回應訊息與要求訊息之間有相互關聯性。
一般來說,當 IRequestChannel 的實作收到與未處理的要求不相關的訊息時,會將它捨棄。
Request 方法可以在多個執行緒上同時呼叫。
將訊息傳遞給要求通道會造成該訊息遭到存取。 當您呼叫 Request 之後,便無法再檢查此訊息,或針對此訊息呼叫 Close。
如果要求訊息大於要使用之繫結所允許的訊息大小上限,則會擲回 QuotaExceededException。 訊息大小上限是由 MaxReceivedMessageSize 屬性所設定。 預設值為 65536 個位元組。
如果在呼叫此函式時傳遞 timeout
,則會使用該值。 如果在繫結上設定 SendTimeout,則如果在呼叫此函式時未指定任何 timeout
,便會使用繫結上的值。
如果在繫結上或是呼叫此函式時,未指定任何逾時值,則會使用 DefaultSendTimeout。 這個預設值為 1 分鐘。
給實施者的注意事項
如果在作業完成之前超出了指定的 TimeoutException,此作業應該擲回 timeout
。