如何設定 WCF-Custom 傳送埠
您可以使用程式設計的方式或 [BizTalk 管理主控台] 來設定 WCF-Custom 傳送埠。
設定屬性
BizTalk Explorer 物件模型會針對具有TransportTypeData讀取/寫入屬性的傳送埠,公開名為ITransportInfo的介面卡特定介面。 這個屬性會以成對的名稱-數值之 XML 字串格式接受 WCF-Custom 傳送埠組態屬性包。
不需要ITransportInfo介面的TransportTypeData屬性。 如果沒有設定此屬性,配接器就會針對 WCF-Custom 傳送埠組態使用預設值,如下表所示。
下列清單描述您可以在 BizTalk Explorer 物件模型中針對 WCF-Custom 傳送埠設定的組態屬性:
屬性名稱: 身分識別
類型:XML Blob
範例:
<identity> <userPrincipalName value="username@contoso.com" /> </identity>
描述:指定此傳送埠預期之服務的身分識別。 這些設定可讓此傳送埠驗證服務。 在用戶端及服務之間的交握程序中,WCF 基礎結構可確保所預期服務的識別符合此項目的值。 可針對 Identity 屬性指定的值會根據安全性設定而有所不同。
預設為空字串。
屬性名稱: StaticAction
類型:字串
描述:指定傳出訊息的 SOAPAction 標頭欄位。 這個屬性也可以透過訊息內容屬性 WCF 來設定 。 管線或協調流程中的動作。 您可以透過兩種不同的方式指定此值:單一動作格式和動作對應格式。 如果您以單一動作格式設定此屬性,例如
http://contoso.com/Svc/Op1
,則傳出訊息的 SOAPAction 標頭一律會設定為此屬性中指定的值。如果您以動作對應格式設定此屬性,傳出 SOAPAction 標頭是由 BTS 決定。作業 內容屬性。 例如,如果此屬性設定為下列 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。 管線元件中的作業屬性。
預設為空字串。
屬性名稱: BindingType
類型:列舉
如需BindingType屬性之成員名稱的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-自訂傳輸屬性對話方塊、傳送、系結索引標籤中的系結類型屬性。
描述:指定要用於這個傳送埠之端點的系結類型。
如果您使用自訂系結,可以使用自訂系結來設定 BindingType 屬性。 如需如何使用自訂系結的詳細資訊,請參閱 如何使用 WCF 配接器啟用 WCF 擴充點。
屬性名稱: BindingConfiguration
類型:XML Blob
範例:
<binding name="netNamedPipeBinding"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="None" /> </binding>
描述:使用 元素指定 XML 字串,
<binding>
以設定 Windows Communication Foundation (WCF) 所提供的不同類型的預先定義系結。 如需系統提供之繫結與自訂繫結的詳細資訊,請參閱「請參閱」中所列的適當主題。BizTalk Server不支援您可以使用BindingConfiguration屬性設定的所有系結延伸專案類型。
預設為空字串。
屬性名稱: EndpointBehaviorConfiguration
類型:XML Blob
範例:
<behavior name="sampleBehavior"> <callbackTimeouts /> </behavior>
描述:使用
<behavior>
元素的 元素指定 XML 字串,<endpointBehaviors>
以設定 WCF 端點的行為設定。 如需專案的詳細資訊<endpointBehaviors>
,請參閱另請參閱中的適當主題。BizTalk Server不支援您可以使用EndpointBehaviorConfiguration屬性設定的所有行為延伸專案類型。
預設為空字串。
屬性名稱: AffiliateApplicationName
類型:字串
描述:指定要用於 Enterprise Single 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 Envelope 建立 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 (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-自訂傳輸屬性] 對話方塊的 [ 一般 ] 索引標籤上,設定端點位址、服務識別,以及 WCF-Custom 傳送埠的 SOAPAction 標頭。 如需WCF-自訂傳輸屬性對話方塊中 [一般] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-自訂傳輸屬性對話方塊、傳送、一般索引標籤。
在 [WCF-自訂傳輸屬性 ] 對話方塊的 [ 系 結] 索引標籤上,為 WCF 設定不同類型的預先定義或自訂系結。 如需WCF-自訂傳輸屬性對話方塊中 [系結] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-自訂傳輸屬性對話方塊、傳送、系結索引標籤。
在 [WCF-自訂傳輸屬性] 對話方塊的 [ 行為 ] 索引標籤上,設定此傳送埠的端點行為。 端點行為是一組行為延伸模組項目,會修改或延伸服務或用戶端功能。 如需WCF-自訂傳輸屬性對話方塊中 [行為] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-自訂傳輸屬性對話方塊、傳送、行為索引標籤。
在 [WCF-自訂傳輸屬性] 對話方塊的 [ 認證 ] 索引標籤上,指定傳送訊息時要使用的認證。 如需WCF-自訂傳輸屬性對話方塊中 [認證] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-自訂傳輸屬性對話方塊、傳送、認證索引標籤。
在 [WCF-自訂傳輸屬性] 對話方塊的 [ 訊息 ] 索引標籤上,指定 SOAP Body 元素的資料選取範圍。 如需WCF-自訂傳輸屬性對話方塊中 [訊息] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-自訂傳輸屬性對話方塊、傳送、訊息索引標籤。
在[WCF-自訂傳輸屬性] 對話方塊的 [匯入/匯出] 索引標籤上,匯入和匯出 [位址] (URI) 和 [一般] 索引標籤上的[端點識別] 屬性、[系結] 索引標籤上的系結資訊,以及此傳送埠之 [行為] 索引標籤上的端點行為。 如需WCF-自訂傳輸屬性對話方塊中 [匯入/匯出] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-自訂傳輸屬性對話方塊、傳送、匯入匯出索引標籤。
以程式設計方式設定 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配接器安裝憑證,以使用ENDPOINTBehaviors > 的 < [設定動態傳送埠] 內容屬性系結 < 行為 > 設定WCF-Custom配接器設定動態傳送埠><