共用方式為


設定 WCF-NetTcp 傳送埠

您可以透過程式設計方式或使用 [BizTalk 管理主控台] 來設定 WCF-NetTcp 傳送埠。

設定屬性

BizTalk Explorer 物件模型會針對具有TransportTypeData讀取/寫入屬性的傳送埠ITransportInfo公開配接器特定介面。 這個屬性會以 XML 字串成對的名稱-數值格式接受 WCF-NetTcp 傳送埠組態屬性包。

不需要ITransportInfo介面的TransportTypeData屬性。 如果沒有設定此屬性,配接器就會針對 WCF-NetTcp 傳送埠組態使用預設值,如下表所示。

下表列出您可以在 [BizTalk 總管物件模型] 中針對 WCF-NetTcp 傳送埠設定的組態屬性。

屬性名稱 類型 描述
身分識別 XML Blob,例如:

<identity>
<userPrincipalName value="username@contoso.com"/>
</identity>
指定此傳送埠所預期服務的識別。 這些設定可讓此傳送埠驗證服務。 在用戶端與服務之間的交握程序中,Windows Communication Foundation (WCF) 基礎結構可確保預期之服務的識別能夠與這個項目的值相符。

預設為空字串。
StaticAction 字串 指定傳出訊息的 SOAPAction 標頭欄位。 您也可以透過訊息內容屬性 WCF 來設定這個屬性 管線或協調流程中的動作。

您可以透過兩種不同的方式指定此值:單一動作格式和動作對應格式。 例如,如果您以單一動作格式設定此屬性, http://contoso.com/Svc/Op1 則傳出訊息的 SOAPAction 標頭一律會設定為此屬性中指定的值。

如果您以動作對應格式設定此屬性,則傳出 SOAPAction 標頭是由 BTS 決定。作業 內容屬性。 例如,如果此屬性設定為下列 XML 格式和BTS。Operation屬性設定為Op1,WCF傳送配接器會針對傳出SOAPAction標頭使用 http://contoso.com/Svc/Op1

<BtsActionMapping>
<Operation Name="Op1" Action="http://contoso.com/Svc/Op1" />
<Operation Name="Op2" Action="http://contoso.com/Svc/Op2" />
</BtsActionMapping>

如果傳出訊息來自協調流程埠,協調流程實例就會動態設定 BTS。具有 埠作業名稱的 Operation 屬性。 如果傳出訊息是以內容為基礎的路由傳送,您可以設定 BTS。 管線元件中的 Operation 屬性。

預設為空字串。
OpenTimeout System.TimeSpan 指定時間值,表示可供完成通道開啟作業的時間間隔。

預設值:00:01:00
SendTimeout System.TimeSpan 指定時間值,表示可供完成傳送作業的時間間隔。 如果您使用請求-回應傳送埠,這個值會指定完成整個互動的時間長度,即使服務傳回很大的訊息也是如此。

預設值:00:01:00
CloseTimeout System.TimeSpan 指定時間值,表示可供完成通道關閉作業的時間間隔。

預設值:00:01:00
MaxReceivedMessageSize 整數 指定訊息的大小上限,以位元組為單位, (包括可在網路接收的標頭) 。 訊息的大小受限於配置給每個訊息的記憶體數量。 您可以使用這個屬性來限制遭受拒絕服務 (DoS) 攻擊的風險程度。

WCF-NetTcp 配接器會利用緩衝傳輸模式中的 NetTcpBinding 類別來與端點通訊。 針對緩衝傳輸模式, NetTcpBinding.MaxBufferSize 屬性一律等於此屬性的值。

預設值:65536
EnableTransaction Boolean 指定訊息是否傳送至目的地服務,並使用 TransactionProtocol 屬性中指定的交易通訊協定,從交易內容中的 MessageBox 資料庫刪除。

預設值: False
TransactionProtocol 列舉

- OleTransaction
- WS-AtomicTransaction
指定要搭配此繫結使用的交易通訊協定。

預設值: OleTransaction
SecurityMode 列舉

-
- 消息
- 運輸
- TransportWithMessageCredential

如需SecurityMode屬性成員名稱的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-NetTcp 傳輸屬性對話方塊、傳送、安全性索引標籤中的安全性模式屬性。
指定使用的安全性類型。

預設值: 傳輸
TransportClientCredentialType 列舉

-
- Windows
- 證書

如需TransportClientCredentialType屬性成員名稱的詳細資訊,請參閱WCF-NetTcp 傳輸屬性對話方塊中傳輸用戶端認證類型屬性、[傳送]、[安全性] 索引標籤,以及 UI 指引和開發人員 API 命名空間參考
指定在執行傳送埠驗證時,所要使用的認證類型。

預設值: Windows
TransportProtectionLevel 列舉

- - 無保護。
- 簽署 - 已簽署訊息。
- EncryptAndSign - 訊息已加密並簽署。
指定在 TCP 傳輸層的安全性。 簽署訊息可以降低訊息在傳輸時遭到第三者竄改的風險。 加密可在傳輸時提供資料等級的隱私權。

預設值: EncryptAndSign
MessageClientCredentialType 列舉

-
- Windows
- 使用者
- 證書

如需MessageClientCredentialType屬性成員名稱的詳細資訊,請參閱WCF-NetTcp 傳輸屬性對話方塊中訊息用戶端認證類型屬性、UI 指引和開發人員 API 命名空間參考中的 [傳送]、[安全性] 索引標籤。
指定當使用以訊息為基礎的安全性來執行用戶端驗證時,所要使用的認證類型。

預設值: Windows
AlgorithmSuite 列舉

如需AlgorithmSuite屬性成員名稱的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-NetTcp 傳輸屬性對話方塊、傳送、安全性索引標籤中的Algorithm suite屬性。
指定訊息加密和 Key Wrap 演算法。 這些演算法會對應到安全性原則語言 (WS-SecurityPolicy) 規格中所指定的演算法。

預設值: Basic256
ClientCertificate 字串 指定 X.509 憑證的憑證指紋,以便向服務驗證此傳送埠。 如果 ClientCredentialsType 屬性設定為 Certificate,則需要這個屬性。 要用於此屬性的憑證必須安裝在[目前使用者] 位置的[我的存放區] 中。

預設為空字串。
AffiliateApplicationName 字串 指定要針對企業單一登入 (SSO) 使用的分支機構應用程式。

預設為空字串。
UseSSO Boolean 指定是否要使用「單一登入」來擷取用戶端認證,以供目的地伺服器驗證。

預設值: False
使用者名稱 String UseSSO 屬性設定為 False時,指定要用於向目的地伺服器進行驗證的使用者名稱。 您不需要對此屬性使用 domain\user 格式。

預設為空字串。
密碼 String 指定當 UseSSO 屬性設定為 False時,要用於向目的地伺服器進行驗證的密碼。

預設為空字串。
OutboundBodyLocation 列舉

- UseBodyElement - 使用 BizTalk 訊息本文部分,為傳出訊息建立 SOAP Body 元素的內容。
- UseTemplate - 使用 OutboundXMLTemplate 屬性中提供的範本,為傳出訊息建立 SOAP Body 元素的內容。

如需如何使用 OutboundBodyLocation 屬性的詳細資訊,請參閱 指定 WCF 配接器的訊息本文
為傳出 WCF 訊息的 SOAP Body 元素指定資料選取範圍。

預設值: UseBodyElement
OutboundXMLTemplate 字串

如需如何使用 OutboundXMLTemplate 屬性的詳細資訊,請參閱 指定 WCF 配接器的訊息本文
指定 XML 格式的範本,以取得傳出訊息之 SOAP Body 元素的內容。 如果 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-NetTcp 傳送配接器用來解碼 輸入 InboundBodyPathExpression 中所指定 XPath所識別之節點的編碼類型。 如果 InboundBodyLocation 屬性設定為 UseBodyPath,則需要這個屬性。 此屬性只對請求-回應連接埠有效。

預設值: XML
PropagateFaultMessage Boolean

- True - 將無法輸出處理的訊息路由傳送至訂閱應用程式 (,例如另一個接收埠或協調流程排程) 。
- False - 暫停失敗的訊息,並在 NACK () 產生負通知。
指定要路由傳送或擱置在輸出處理中失敗的訊息。

此屬性只對請求-回應連接埠有效。

預設值: True

如何使用 BizTalk 管理主控台來設定 WCF-NetTcp 傳送埠

您可以在 [BizTalk 管理主控台] 中設定 WCF-NetTcp 傳送埠配接器變數。 如果沒有設定傳送埠的屬性,系統就會針對 WCF-NetTcp 傳送埠組態使用預設值,如上表所示。

設定 WCF-NetTcp 傳送埠的變數

  1. 在 [BizTalk 管理主控台] 中建立新的傳送埠,或按兩下現有的傳送埠進行修改。 如需詳細資訊,請參閱 如何建立傳送埠。 設定所有傳送埠選項,並針對 [一般] 索引標籤的 [傳輸] 區段中的[類型] 選項指定WCF-NetTcp

  2. 在 [一般]索引標籤的 [傳輸] 區段中,按一下[類型] 旁的 [設定] 按鈕。

  3. [WCF-NetTcp 傳輸屬性 ] 對話方塊的 [ 一般 ] 索引標籤上,設定端點位址、服務識別,以及 WCF-NetTcp 傳送埠的 SOAPAction 標頭。 如需WCF-NetTcp 傳輸屬性對話方塊中 [一般] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-NetTcp 傳輸屬性對話方塊、傳送、一般索引標籤。

  4. [WCF-NetTcp 傳輸屬性 ] 對話方塊的 [ 結] 索引標籤上,設定逾時和交易屬性。 如需WCF-NetTcp 傳輸屬性對話方塊中 [結] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-NetTcp 傳輸屬性對話方塊、傳送、系結索引標籤。

  5. [WCF-NetTcp 傳輸屬性 ] 對話方塊的 [ 安全性 ] 索引標籤上,定義傳送埠 WCF-NetTcp 的安全性功能。 如需WCF-NetTcp 傳輸屬性對話方塊中 [安全性] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-NetTcp 傳輸屬性對話方塊、傳送、安全性索引標籤。

  6. [WCF-NetTcp 傳輸屬性 ] 對話方塊的 [ 訊息 ] 索引標籤上,指定 SOAP Body 元素的資料選取範圍。 如需WCF-NetTcp 傳輸屬性對話方塊中 [訊息] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-NetTcp 傳輸屬性對話方塊、傳送、訊息索引標籤。

以程式設計方式設定 WCF-NetTcp 傳送埠

您可以使用下列格式來設定屬性:

<CustomProps>

  <UseSSO vt="11">0</UseSSO>
  <InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
  <InboundBodyPathExpression vt="8" />
  <MessageClientCredentialType vt="8">Windows</MessageClientCredentialType>
  <SendTimeout vt="8">00:01:00</SendTimeout>
  <OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
  <OpenTimeout vt="8">00:01:00</OpenTimeout>
  <AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
  <SecurityMode vt="8">Transport</SecurityMode>
  <TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
  <ClientCertificate vt="8" />
  <TransactionProtocol vt="8">OleTransactions</TransactionProtocol>
  <MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
  <StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
  <TransportProtectionLevel vt="8">EncryptAndSign</TransportProtectionLevel>
  <CloseTimeout vt="8">00:01:00</CloseTimeout>
  <EnableTransaction vt="11">0</EnableTransaction>
  <InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
  <PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
  <OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>

下列程式碼片段說明如何建立 WCF-NetTcp 傳送埠:

// Use BizTalk Explorer object model to create new WCF-NetTcp 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>
<OpenTimeout vt=""8"">00:01:00</OpenTimeout>
                               </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-NetTcp"];
sendPort.PrimaryTransport.Address = "net.tcp://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-NetTcp配接器使用 WCF 配接器內容屬性設定動態傳送埠