利用 WCF 傳送配接器使用 WCF 服務的考量
本主題提供您利用 WCF 配接器使用 Web 服務時應該納入之考量的相關資訊。
傳送非 XML 內容為請求訊息時,使用範本 -- 由範本指定的內容選項
具有本文的 WCF 配接器 -- BizTalk 回應訊息本文 (預設值) 選項不允許傳送非 XML 訊息,例如字元資料和點陣圖影像。 您可以使用 範本 -- WCF 配接器範本選項所指定的內容 來傳送非 XML 訊息。 如需如何使用範本的詳細資訊,請參閱 使用 WCF 接收配接器發佈 WCF 服務時的考慮。
如果服務位址開頭為 ,WCF-BasicHttp 和 WCF-WSHttp 傳送埠一律會忽略 Proxy http://localhost
如果服務位址是以傳送埠的[Proxy] 索引標籤或傳送處理常式的 [Proxy] 索引標籤上設定 Proxy 開頭 http://localhost ,則 WCF-BasicHttp 和 WCF-WSHttp 傳送埠一律忽略 Proxy。 若您希望用戶端與同一部電腦的服務進行通訊時是透過 Proxy,就應該使用主控件名稱 (不要使用 localhost)。
若 Proxy 設定不正確,WCF-BasicHttp 和 WCF-WSHttp 傳送配接器會擱置訊息
您可以在傳送埠的 [ Proxy ] 索引標籤或傳送處理常式的 [ Proxy] 索引標籤上,指定 WCF-BasicHttp 和 WCF-WSHttp 傳送配接器的 Proxy 設定。 若 Proxy 設定不正確,WCF 配接器會擱置訊息,而且事件日誌會接收到錯誤訊息「沒有任何接聽的端點可以接受該訊息」。
設定具 WCF-NetMsmq 配接器之 WCF 傳送埠的權限
當具 WCF-NetMsmq 配接器的 WCF 傳送埠傳送訊息至使用 NetMsmqBinding 所發佈的 WCF 服務時,會將訊息定址至目標佇列 (由服務佇列管理員管理的佇列)。 用戶端上的佇列管理員會將訊息傳送至傳輸 (或傳出) 佇列。 傳輸佇列是用戶端的佇列管理員,會儲存傳輸至目標佇列的訊息。
針對定址至服務之所有目標佇列的訊息,服務的佇列管理員會接受並加以儲存。 接著,服務會要求讀取目標佇列,佇列管理員再將訊息傳遞至服務。 因此,裝載傳送埠的 BizTalk 主控件執行個體服務帳戶,應擁有寫入傳輸佇列的權限。
使用空 XPath 運算式接收 SOAP 訊息,其 SOAP Body 項目內容中含字元資料
請求-回應 WCF 傳送埠可接收 WCF 訊息做為回應訊息。 若要從傳入回應訊息建立 BizTalk 訊息,其中含有 SOAP Body元素內容中的字元資料,如下列範例所示,您應該將 [WCF 配接器傳輸屬性] 對話方塊中 [訊息] 索引標籤上的[XPath 運算式] 文字方塊保留空白。
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
...
</s:Header>
<s:Body>Contoso</s:Body>
</s:Envelope>
如果您選取 [信封 ] 或 [ 本文 ] 選項,配接器不會從傳入訊息建立 BizTalk 訊息。 訊息不會遭擱置,因為輸入 SOAP 封送處理時失敗的訊息不會遭擱置。 如需如何在 [訊息 ] 索引標籤上使用 XPath 運算式的詳細資訊,請參閱 指定 WCF 配接器的訊息本文。
注意
設定 BTSNTSvc.exe.config. 檔,即可使用 Windows SDK 內的 TraceViewer 工具 (SvcTraceViewer.exe)。 For more information about the Windows SDK, see "What's New in the Windows SDK" at https://go.microsoft.com/fwlink/?LinkId=75219. For more information about the TraceViewer tool, see "TraceViewer Tool (SvcTraceViewer.exe)" at https://go.microsoft.com/fwlink/?LinkId=75218.
BizTalk Server 不使用多部分訊息類型和描述自訂 SOAP 標頭的根項目
若您對中繼資料執行 [BizTalk WCF 服務使用精靈],而其中的自訂 SOAP 標頭已定義,精靈會在產生的結構描述中產生根項目,代表自訂 SOAP 標頭。 精靈也會為自訂 SOAP 標頭在協調流程中建立多部分訊息類型。 BizTalk Server。 然而,BizTalk Server 不使用多部分訊息類型和根項目來處理自訂 SOAP 標頭。
若要存取自訂 SOAP 標頭,您應該使用 InboundHeaders 屬性。 如需接收自訂 SOAP 標頭的詳細資訊,請參閱 具有已發佈 WCF 服務的 SOAP 標頭。 若要使用自訂 SOAP 標頭,您應該使用 OutboundCustomHeaders 屬性。 如需傳送自訂 SOAP 標頭的詳細資訊,請參閱 使用已取用 WCF 服務的 SOAP 標頭。
為使用不同 Proxy 位址和/或 Proxy 認證的傳送埠,建立個別的主控件執行個體
若要讓 WCF 傳送配接器達到可能的最佳效能,建議您為使用不同 Proxy 位址和/或 Proxy 認證的傳送埠,建立個別的主控件執行個體。 如此可避免爭用 Proxy 設定。