您可以使用程式設計方式或使用 BizTalk 管理控制台來設定 WCF-Custom 傳送埠。
設定屬性
BizTalk Explorer 物件模型會針對具有 TransportTypeData 讀取/寫入屬性的傳送埠,公開名為 ITransportInfo 的配接器特定介面。 這個屬性接受名為 WCF-Custom 的傳送埠組態屬性包,其中包含以名稱/值對形式呈現的 XML 字串。
不需要 ITransportInfo 介面的 TransportTypeData 屬性。 如果未設定,配接器會使用 WCF-Custom 傳送埠組態的預設值,如下表所示。
下列清單描述您可以在 BizTalk Explorer 物件模型中設定 WCF-Custom 傳送埠的組態屬性:
屬性名稱: 身分識別
類型:XML Blob
範例:
<identity> <userPrincipalName value="username@contoso.com" /> </identity>
描述:指定此傳送埠預期的服務身分識別。 這些設定可讓此傳送埠驗證服務。 在用戶端和服務之間的握手過程中,WCF 基礎結構可確保預期的服務識別符合此元素的值。 可以為 Identity 屬性指定的值會根據安全性組態而有所不同。
預設值是空字串。
屬性名稱: StaticAction
類型:字串
描述:指定傳出訊息的 SOAPAction 標頭欄位。 這個屬性也可以透過在管線或協同運作中設定訊息上下文屬性 WCF.Action 來設置。 您可以透過兩種不同的方式指定此值:單一動作格式和動作對應格式。 如果您以單一動作格式設定這個屬性,例如
http://contoso.com/Svc/Op1
,則傳出訊息的 SOAPAction 標頭一律會設定為此屬性中指定的值。如果您以動作對應格式設定此屬性,則傳出的 SOAPAction 標頭由 BTS.Operation 上下文屬性決定。 例如,如果此屬性採用以下 XML 格式且 BTS.Operation 屬性設定為 Op1,則 WCF 傳送適配器將使用
http://contoso.com/Svc/Op1
作為發送的 SOAPAction 標頭。<BtsActionMapping> <Operation Name="Op1" Action="http://contoso.com/Svc/Op1" /> <Operation Name="Op2" Action="http://contoso.com/Svc/Op2" /> </BtsActionMapping>
如果傳出訊息來自協調流程埠,協調流程實例會動態設定 BTS.Operation 屬性為埠的作業名稱。 如果傳出訊息是以內容為基礎進行路由傳送,您可以在管線元件中設定 BTS.Operation 屬性。
預設值是空字串。
屬性名稱: BindingType
類型:列舉
如需 BindingType 屬性中成員名稱的詳細資訊,請參閱 UI 指引和開發人員 API 命名空間參考 中,在 WCF-Custom 傳輸屬性對話方塊的「傳送」及「繫結」 標籤中,繫結類型 屬性。
描述:指定要用於這個傳送埠之端點的系結類型。
如果您使用自定義系結,可以使用自定義系結來設定 BindingType 屬性。 如需如何使用自定義系結的詳細資訊,請參閱 如何使用WCF配接器啟用WCF擴充點。
屬性名稱: BindingConfiguration
類型:XML Blob
範例:
<binding name="netNamedPipeBinding"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="None" /> </binding>
描述:指定包含
<binding>
元素的 XML 字串,以設定 Windows Communication Foundation (WCF)所提供的不同類型的預先定義系結。 如需有關系統提供的系結和自定義系結的詳細資訊,請參閱「另請參閱」中列出的相關主題。BizTalk Server 不支援您可以使用 BindingConfiguration 屬性設定的所有綁定延伸模組項目類型。
預設值是空字串。
屬性名稱: EndpointBehaviorConfiguration
類型:XML Blob
範例:
<behavior name="sampleBehavior"> <callbackTimeouts /> </behavior>
描述:指定含有
<behavior>
元素和<endpointBehaviors>
元素的 XML 字串,以配置 WCF 端點的行為設定。 如需有關<endpointBehaviors>
元素的詳細資訊,請參閱「參閱」中的相關主題。BizTalk Server 不支援您可以使用 EndpointBehaviorConfiguration 屬性設定的所有行為擴充項目類型。
預設值是空字串。
屬性名稱: AffiliateApplicationName
類型:字串
描述:指定要用於企業單一 Sign-On (SSO) 的分支機構應用程式。
預設值是空字串。
屬性名稱: UseSSO
類型:布爾值
描述:指定是否要使用單一 Sign-On 來擷取客戶端認證,以向目的地伺服器進行驗證。
默認值: False
屬性名稱: UserName
類型:字串
描述:當 UseSSO 屬性設定為 False 時,指定要用於向目的地伺服器進行驗證的用戶名稱。 您不需要使用
domain\user
此屬性的格式。預設值是空字串。
屬性名稱: 密碼
類型:字串
描述:當 UseSSO 屬性設定為 False 時,指定要用於向目的地伺服器進行驗證的密碼。
預設值是空字串。
屬性名稱: OutboundBodyLocation
類型:列舉
- UseBodyElement:使用 BizTalk 訊息本文部分,為傳出訊息建立 SOAP Body 元素的內容。
- UseTemplate:使用 OutboundXMLTemplate 屬性中提供的範本,為傳出訊息建立 SOAP Body 元素的內容。
若您需要瞭解如何使用 OutboundBodyLocation 屬性,請參閱 WCF 配接器訊息本文的指定方法。
描述:指定傳出 WCF 訊息之 SOAP Body 元素的數據選取範圍。
默認值: UseBodyElement
屬性名稱: OutboundXMLTemplate
類型:字串
若要了解如何使用 OutboundXMLTemplate 屬性,請參閱 指定 WCF 配接器的訊息本文。
描述:指定傳出訊息之 SOAP Body 元素內容的 XML 格式範本。 如果 OutboundBodyLocation 屬性設定為 UseTemplate,則需要此屬性。
預設值是空字串。
屬性名稱: InboundBodyLocation
類型:枚舉
- UseBodyElement:使用傳入訊息的SOAP Body 元素內容來建立 BizTalk 訊息本文元件。 如果 Body 元素有多個子元素,則只有第一個元素會成為 BizTalk 訊息的本文部分。 此屬性僅適用於請求-回應埠。
- UseEnvelope:從傳入訊息的整個 SOAP 信封 建立 BizTalk 訊息本文部分。
- UseBodyPath:使用 InboundBodyPathExpression 屬性中的本文路徑表達式來建立 BizTalk 訊息本文元件。 針對傳入訊息的 SOAP Body 元素的直接子元素進行評估主體路徑表達式。 此屬性僅適用於請求-回應埠。
若需深入了解如何使用 InboundBodyLocation 屬性,請參閱 指定 WCF 配接器的訊息本文。
描述:指定傳入 WCF 訊息之 SOAP Body 元素的數據選取範圍。
默認值: UseBodyElement
屬性名稱: InboundBodyPathExpression
類型:字串
如需如何使用 InboundBodyPathExpression 屬性的詳細資訊,請參閱 WCF 配接器屬性架構和屬性。
描述:指定用於識別傳入訊息中特定部分的主體路徑表達式,該部分用於建立 BizTalk 訊息主體部分。 此本文路徑表達式會根據傳入訊息之SOAP Body 節點的直接子元素進行評估。 如果此本文路徑表達式傳回一個以上的節點,則 BizTalk 訊息本文部分只會選擇第一個節點。 如果 InboundBodyLocation 屬性設定為 UseBodyPath,則需要此屬性。 此屬性僅適用於請求-回應埠。
預設值是空字串。
屬性名稱: InboundNodeEncoding
類型:列舉
- XML
- Base64:Base64 編碼
- 十六進位:十六進位編碼
- 字串:文字編碼;UTF-8
- XML:WCF 配接器會在 InboundBodyPathExpression 中,使用內文路徑表達式所選取節點的外部 XML 來建立 BizTalk 訊息本文。
描述:指定 WCF-Custom 傳送配接器用來譯碼的節點編碼類型,該節點是由 InboundBodyPathExpression 中指定的主體路徑所識別。 如果 InboundBodyLocation 屬性設定為 UseBodyPath,則需要此屬性。 此屬性僅適用於請求-回應埠。
預設值: XML
屬性名稱: PropagateFaultMessage
類型:布爾值
- True:將處理輸出時失敗的訊息路由到訂閱應用程式(例如另一個接收埠或協調排程)。
- False:暫停失敗的訊息並產生否認回應(NACK)。
描述:指定是否要路由或暫停在輸出處理中失敗的訊息。
此屬性僅適用於請求-回應埠。
默認值: True
屬性名稱: ReferencedBindings
類型:XML Blob
範例:
<BindingConfiguration vt="8"> <wsFederationHttpBinding> <binding name="sampleBinding"> <security mode="Message"> <message issuedKeyType="AsymmetricKey"> <issuer address="http://www.contoso.com/samplests" binding="wsFederationHttpBinding" bindingConfiguration="contosoSTSBinding"/> </message> </security> </binding> </wsFederationHttpBinding> </BindingConfiguration> <ReferencedBindings vt="8"> <bindings> <wsFederationHttpBinding> <binding name="contosoSTSBinding"> <security mode="Message"> <message negotiateServiceCredential="false"> <issuer address="http://northwind.com/samplests" bindingConfiguration="northwindBinding" binding="wsHttpBinding"> </issuer> </message> </security> </binding> </wsFederationHttpBinding> <wsHttpBinding> <binding name="northwindBinding"> <security mode="Message"> <message clientCredentialType="Certificate" /> </security> </binding> </wsHttpBinding> </bindings> </ReferencedBindings>
ReferencedBinding 屬性不得包含 BindingConfiguration 屬性中使用的系結組態。
描述:指定 wsFederationHttpBinding 和 customBinding 元素之 bindingConfiguration 屬性
<issuer>
所參考的系結組態,指出發出安全性令牌的安全性令牌服務 (STS) 。 如需<issuer>
元素的詳細資訊,請參閱 WCF 組態架構:<issuer>
。系結資訊包括
<issuer>
元素、wsFederationHttpBinding 和 customBinding,可以透過 WCF-Custom 和 WCF-CustomIsolated 配接器的 BindingConfiguration 屬性來設定。 此屬性的所有參考系結組態都必須以<bindings>
元素形式放置。您無法在 [傳輸屬性] 對話框中的 [ 系結] 索引標籤上設定這個屬性。 您可以在 WCF-Custom 和 WCF-CustomIsolated 配接器的傳輸屬性對話框中,透過 [ 匯入/匯出 ] 索引標籤匯入和匯出此屬性。
專案的 bindingConfiguration 屬性
<issuer>
必須參考這個屬性中的有效系結名稱。參考的系結組態中的
<issuer>
元素如果這個參考鏈結未建立循環相依性,也可以參考這個屬性中的不同系結組態。預設值是空字串。
使用 BizTalk 管理控制台設定 WCF-Custom 傳送埠
您可以在 BizTalk 管理控制台中設定 WCF-Custom 傳送埠配接器變數。 如果未設定傳送埠的屬性,則會使用 WCF-Custom 傳送埠組態的預設值,如上表所示。
設定 WCF-Custom 傳送埠的變數
如果您打算在設定 WCF-Custom 配接器時使用 WCF 擴充點,例如自定義綁定項、自定義行為元素和自定義通道元件,您必須將實作擴充點和所有相依元件的元件新增至 BizTalk 處理電腦 (運行時間電腦) 和系統管理計算機上的全域程式集緩存。 此外,您必須向 machine.config 檔案註冊延伸模組元件。 如需如何搭配 WCF 自定義配接器使用 WCF 擴充點的詳細資訊,請參閱如何使用 WCF 配接器 啟用 WCF 擴充點。
在 BizTalk 管理控制台中,建立新的傳送埠,或按兩下現有的傳送埠加以修改。 如需詳細資訊,請參閱 如何建立傳送埠。 設定所有傳送埠選項,並在UI指引和開發人員 API 命名空間參考的 [一般] 索引標籤的 [傳輸] 區段中,為 [類型] 選項指定 WCF-Custom。
在 [一般] 索引標籤的 [傳輸] 區段中,按兩下 [類型] 旁的 [設定] 按鈕。
在 [WCF-Custom 傳輸屬性 ] 對話方塊的 [ 一般 ] 索引標籤上,設定端點位址、服務識別,以及 WCF-Custom 傳送埠的 SOAPAction 標頭。 如需 [WCF-Custom 傳輸屬性] 對話方塊中的 [一般] 索引標籤的詳細資訊,請參閱UI指引和開發人員 API 命名空間參考中的 WCF-Custom 傳輸屬性對話框、傳送、一般索引標籤。
在 [WCF-Custom 傳輸屬性] 對話方塊的 [系結] 索引卷標上,設定 WCF 不同類型的預先定義或自定義系結。 如需系結索引標籤在WCF-Custom 傳輸屬性對話方塊中的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-Custom 傳輸屬性對話框、傳送、系結索引標籤。
在 [WCF-Custom 傳輸屬性 ] 對話方塊的 [ 行為] 索引標籤上,設定此傳送埠的端點行為。 端點行為是一組行為擴充元素,用於修改或擴展服務或用戶端的功能。 如需 [WCF-Custom 傳輸屬性] 對話框中之 [行為] 索引標籤的詳細資訊,請參閱 UI 指引和開發人員 API 命名空間參考中的 WCF-Custom 傳輸屬性對話框、傳送、行為索引標籤。
在 [WCF-Custom 傳輸屬性 ] 對話方塊的 [ 認證 ] 索引標籤上,指定傳送訊息時要使用的認證。 如需 [WCF-Custom 傳輸屬性] 對話方塊中 [認證] 索引標籤的詳細資訊,請參閱UI指引和開發人員 API 命名空間參考中的 [WCF-Custom 傳輸屬性對話方塊、傳送、認證] 索引標籤。
在 [WCF-Custom 傳輸屬性 ] 對話方塊的 [ 訊息 ] 索引標籤上,指定 SOAP Body 元素的數據選取範圍。 如需 [WCF-Custom 傳輸屬性] 對話方塊中 [訊息] 索引卷標的詳細資訊,請參閱UI指引和開發人員 API 命名空間參考中的 WCF-Custom 傳輸屬性對話框、傳送、訊息索引標籤。
在 [WCF-Custom 傳輸屬性] 對話方塊的 [匯入/匯出] 索引標籤上,匯入和匯出 [一般] 索引標籤上的 [位址] 和 [端點識別] 屬性、[系結] 索引卷標上的系結資訊,以及此傳送埠之 [行為] 索引卷標上的端點行為。 如需 [WCF-Custom 傳輸屬性] 對話方塊中的 [匯入/匯出] 索引標籤的詳細資訊,請參閱 UI 指引和開發人員 API 命名空間參考中的 WCF-Custom 傳輸屬性對話框、傳送、匯入-匯出索引標籤。
以程式設計方式設定 WCF-Custom 傳送埠
您可以使用下列格式來設定屬性:
<CustomProps>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<InboundBodyPathExpression vt="8" />
<EndpointBehaviorConfiguration vt="8"><behavior name="sampleBehavior"><callbackTimeouts /></behavior></EndpointBehaviorConfiguration>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<BindingConfiguration vt="8"><binding name="NetNamedPipeOrderProcessService.OrderProcessServieEndpoint"><readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /><security mode="None" /></binding></BindingConfiguration>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<UseSSO vt="11">0</UseSSO>
<AffiliateApplicationName vt="8" />
<BindingType vt="8">netNamedPipeBinding</BindingType>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<UserName vt="8" />
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
</CustomProps>
下列代碼段說明如何建立 WCF-Custom 傳送埠:
謹慎
此範例或指引會參考敏感性資訊,例如連接字串或使用者名稱和密碼。 請勿在程式代碼中硬式編碼這些值,並確定您使用最安全的驗證來保護機密數據。 如需詳細資訊,請參閱下列文件:
// Use BizTalk Explorer object model to create new WCF-Custom send port.
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
<StaticAction vt=""8"">http://www.northwindtraders.com/Service/Operation</StaticAction>
<EndpointBehaviorConfiguration vt=""8""><behavior name=""sampleBehavior""><callbackTimeouts /></behavior></EndpointBehaviorConfiguration>
<BindingType vt=""8"">netNamedPipeBinding</BindingType>
</CustomProps>";
//requires project reference to \Program Files\Microsoft BizTalk Server 2009\Developer Tools\Microsoft.BizTalk.ExplorerOM.dll
BtsCatalogExplorer explorer = new Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer();
explorer.ConnectionString = connectionString;
// Add a new BizTalk application
Application application = explorer.AddNewApplication();
application.Name = "SampleBizTalkApplication";
// Save
explorer.SaveChanges();
// Add a new static one-way send port
SendPort sendPort = application.AddNewSendPort(false, false);
sendPort.Name = "SampleSendPort";
sendPort.PrimaryTransport.TransportType = explorer.ProtocolTypes["WCF-Custom"];
sendPort.PrimaryTransport.Address = "net.pipe://mycomputer/private/samplequeue";
sendPort.PrimaryTransport.TransportTypeData = transportConfigData; // propertyData; // need to change
sendPort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];
// Save
explorer.SaveChanges();
另請參閱
WCF 配接器屬性架構和屬性指定 WCF 配接器的訊息本文為 WCF 配接器安裝憑證設定 WCF-Custom 配接器使用 WCF 配接器內容屬性設定動態傳送埠<系結>端點行為的<行為><配置>