您可以在 WCF 傳送配接器的傳輸屬性對話框或編排中的 表達式 圖形中設定 WCF.Action 內容屬性。 如果您在協調流程中設定 WCF.Action 上下文屬性,必須在靜態傳送埠的 [WCF 配接器傳輸屬性] 對話框中將 [動作] 欄位留空。 如果您也在靜態傳送埠中指定動作,WCF.Action 上下文屬性將會覆寫您在編排中設定的內容。
此外,有兩種方式可以指定此屬性:單一動作格式和動作對應格式。 如果您以單一動作格式設定此屬性,例如 http://MyService/IMyContract/MyAction1,那麼 WCF 傳送配接器傳輸屬性對話方塊中的 SOAP 動作一律會設定為此屬性中指定的值。 或者,您可以在協調流程 表示式 圖形中設定單一動作格式。 例如,
OutboundMessage(WCF.Action)="http://MyService/IMyContract/MyAction1";
如果您以動作對應格式設定此屬性,則傳出的 SOAP 動作是由 BTS.Operation 內容屬性決定的。 例如,如果在 WCF 傳送配接器傳輸屬性對話框中將此屬性設定為以下 XML 格式,且在協調流程傳送埠中將 BTS.Operation 屬性設為 Operation_1,WCF 傳送配接器將使用 http://MyService/IMyContract/MyAction1 來進行傳出 SOAP 操作。
BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Operation Name="Operation_1" Action="http://MyService/IMyContract/MyAction1" />
<Operation Name="Operation_2" Action="http://MyService/IMyContract/MyAction2" />
<Operation Name="Operation_3" Action="http://MyService/IMyContract/MyAction3" />
</BtsActionMapping>
為 WCF.Action 指定動作對應在 表達式 圖形中不支援。 您必須在 [WCF 傳輸屬性] 對話框中指定動作對應。 然後 WCF 配接器會使用 BTS.Operation 內容屬性來查閱 SOAP 動作,而編排會將此屬性設定為傳送訊息的埠上的作業名稱。
如果使用內容為基礎的路由(CBR) 傳送傳出訊息但未設定 http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation
屬性,WCF 傳送配接器會將整個動作對應字串設定為傳出WCF 訊息的動作。 若要解決此問題,您可以執行下列其中一項作業:
傳送埠上的動作欄位設定為
http://MyService/IMyContract/MyAction1
。在管線中設定 BTS.Operation 的內容屬性。 例如,將的值
http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation
設定為 Operation1。將動作欄位保留空白,並改用傳入訊息中的動作。
您也可以使用 BizTalk WCF 服務取用精靈,透過單一動作或動作對應來取用 WCF 服務。 如需詳細資訊,請參閱 如何使用 BizTalk WCF 服務取用精靈來取用 WCF 服務。