使用者代碼不直接建立通道,由專門工廠類型完成。接收端稱為「通道偵聽器」,發送端稱為「通道工廠」,統稱「通道管理器」。雖非通道,但屬通道層一部分。通道依功能分類(TCP、WS-ReliableMessaging 等),管理器亦同:特定功能的管理器建立對應功能的通道,且不重複建立。管理器可建立多種形狀通道,但功能域相同。
ICommunicationObject,擁有通道狀態機GetProperty<T>())早期 WCF(Indigo 時期)中,ChannelManagerBase 追蹤所建通道,管理器關閉時連帶關閉所有通道。發送端適用,但接收端有嚴重問題:單一 URI 僅能有一個偵聽器,需頻繁重建堆疊時,關閉舊偵聽器可能耗時極長(涉及 WS-RM 訊息、交易提交等),阻塞新偵聽器啟動。
目前版本中,ChannelManagerBase 不再管理通道生命週期,改由通道工廠類別層次處理。基類職責簡化為:
Binding 逾時屬性給通道接收端得以關閉舊偵聽器處理殘留工作,同時啟動新偵聽器服務新訊息,大幅提升吞吐量。
Binding 與 BindingElement 完整串聯建立流程