使用 WCF 配接器內容屬性設定動態傳送埠
您可以為 WCF 配接器設定動態傳送埠。 URI、動作和系結可能是從傳入訊息上的屬性決定,然後在 運算式 圖形中指定,如下列 WCF-NetTcp 配接器所示:
MessageOut=MessageIn;
MessageOut(WCF.Action)="http://tempuri.org/IReceiveMessage/ReceiveMessage";
MessageOut(WCF.SecurityMode)="Transport";
MessageOut(WCF.TransportClientCredentialType)="Windows";
DynamicSendPort(Microsoft.XLANGs.BaseTypes.Address)="net.tcp://localhost:8001/netTcp";
DynamicSendPort(Microsoft.XLANGs.BaseTypes.TransportType)="WCF-NetTcp";
下列程式碼示範如何在 WCF-Custom 配接器的 運算式 圖形中指定 WCF 內容屬性的範例:
MessageOut=MessageIn;
MessageOut(WCF.BindingType)="customBinding";
MessageOut(WCF.Action)="http://tempuri.org/IReceiveMessage/ReceiveMessage";
MessageOut(WCF.BindingConfiguration)=@"<binding name=""customBinding""><binaryMessageEncoding /><tcpTransport /></binding>";
DynamicSendPort(Microsoft.XLANGs.BaseTypes.Address)="net.tcp://localhost:8001/customNetTcp";
DynamicSendPort(Microsoft.XLANGs.BaseTypes.TransportType)="WCF-Custom";
指定 WCF 內容屬性時的考量如下:
有些位址可對應至多個配接器。 例如,http:// 或 https:// 開頭的位址可以由 HTTP 配接器和 WCF-BasicHttp、WCF-WsHttp 或 WCF-Custom 配接器處理。 上方範例程式碼的另一個範例為:這兩種配接器都使用開頭為 net.tcp:// 的位址,不過因為第二個範例程式碼使用自訂繫結,所以應該使用 WCF-Custom 處理位址。 因此,若要識別正確的配接器,您必須使用您想要使用的配接器,在運算式圖形中設定選擇性的 Microsoft.XLANGs.BaseTypes.TransportType欄位。
注意
如果位址以 HTTP:// 或 HTTPs:// 開頭,而且您預設未指定 Microsoft.XLANGs.BaseTypes.TransportType 欄位,BizTalk 引擎將會使用 HTTP 配接器。
WCF。BindingType會依名稱識別系結。 可以是下列其中一項:
basicHttpBinding
customBinding
netMsmqBinding
netNamedPipeBinding
netTcpBinding
wsFederationHttpBinding
wsHttpBinding
上方的清單可以擴充。 例如,您可以將自己的繫結新增至清單中,例如 FtpBinding。
WCF。BindingConfiguration會指定系結類型的系結組態。 它會採用在電腦組態檔中註冊的任何繫結。 此外還會以與 WCF 組態檔的繫結組態中使用的相同格式採用 XML 組態。
您可能需要指定額外的 WCF 屬性。 您可以在運算式編輯器中輸入 WCF ,而 IntelliSense 功能應該列出所有可用的內容屬性。 如需 WCF 內容屬性的詳細資訊,請參閱 WCF 配接器屬性架構和屬性。
上述範例示範如何設定 WCF。 具有單一動作的動作。 在多個動作對應實例中,WCF 配接器不支援使用多個動作對應搭配動態傳送埠。 您只要在 WCF 中設定實際動作 即可。動作 內容屬性,如上方所示。