WCF 配接器服務合約參考

 

WCF 配接器在接收訊息時使用不具類型的訊息合約。 藉由使用不具類型的訊息合約,WCF 配接器可以從用戶端接收任何類型的 WCF 訊息。 您可以指定如何透過 BizTalk 管理主控台中的輸入 BizTalk 訊息本文 選項,從傳入 WCF 訊息建立 BizTalk 訊息。 下表中的 WCF 配接器服務合約,是用來做為 WCF 接收配接器的不具類型的訊息合約。

警告

本主題僅提供資訊。 您可以使用此資訊解譯執行個體,這是 WCF 效能計數器為 WCF 配接器和 WCF 配接器自動產生的中繼資料所建立的執行個體。 建立應用程式時,請勿仰賴此資訊。

介面 描述
ITwoWayAsync 介面 適用於 WCF 要求-回應接收位置。 WCF 配接器會以非同步方式,處理透過此介面內送的訊息。
ITwoWayAsyncVoid 介面 適用於 WCF 單向接收位置,其不支援交易通訊協定,但不包括 WCF-NetMsmq 配接器。 WCF 配接器會以非同步方式,處理透過此介面內送的訊息。
ITwoWayAsyncVoidTxn 介面 適用於 WCF 單向接收位置,其支援交易通訊協定,但不包括 WCF-NetMsmq 配接器。 WCF 配接器會以非同步方式,處理透過此介面內送的訊息。
IOneWayAsync 介面 適用於 WCF-NetMsmq 單向非交易式接收位置。 WCF 配接器以非同步方式處理透過此介面內送的訊息。 注意: 透過 IOneWayAsync 介面傳入的訊息可能會遺失,因為介面用於非交易式資料包通道。
IOneWayAsyncTxn 介面 適用於 WCF-NetMsmq 單向交易式接收位置。 WCF 配接器以非同步方式處理透過此介面內送的訊息。
BizTalkServiceInstance 類別 實作 WCF 配接器用於接收內送訊息的服務合約。 WCF 配接器會為每個接收位置建立此類別的個別 ServiceHost 和單一服務物件,以處理執行 WCF 接收位置之 BizTalk 主機實例存留期的用戶端要求。 除非選取已 排序處理 屬性使用WCF-NetMsmq接收位置,否則服務物件會使用多個執行緒同時處理訊息。
  • WCF 配接器會依據 WCF 接收位置中設定的通道堆疊,選擇其中一個 WCF 服務合約以接收訊息。

    注意

    對於標準 WCF 配接器,通道堆疊是由接收位置的 WCF 組態屬性所自動設定的。

    若要判斷要使用的服務合約,WCF 配接器會針對 WCF 接收位置的系結,使用IReplyChannelIReplySessionChannelIDuplexSessionChannel叫用Binding.CanBuildChannelListener方法。 如果有任何方法呼叫傳回 true,則會使用以 ITwoWayAsync 開頭的服務合約,以確保至少傳遞一次。 否則,從 IOneWayAsync 開始的服務合約會用來接收訊息。 然後 WCF 配接器會針對下列情況選擇以 Txn 結尾的服務合約:

    • TransactionFlowBindingElement會新增至啟用交易流程的通道堆疊。

    • MsmqTransportBindingElement會新增至通道堆疊,其中 ExactlyOnce屬性設定為true

    • 實作 ITransactedBindingElement 的繫結項目會新增至系結,其中 TransactedReceiveEnabled 屬性會設定為 true

  • 如果已為 WCF 要求-回應接收位置新增 OneWayBindingElement ,則透過接收位置傳入的訊息可能會遺失,因為 OneWayBindingElement 會在將訊息分派至 WCF 配接器之前立即產生虛擬回應。

另請參閱

ServiceHost 類別Binding.CanBuildChannelListenerIReplyChannel 介面IReplySessionChannel 介面IDuplexSessionChannel 介面TransactionFlowBindingElement 類別MsmqTransportBindingElementITransactedBindingElement 介面ITransactedBindingElement.TransactedReceiveEnabled 屬性OneWayBindingElement 類別