設定 WCF-WSHttp 傳送埠
您可以用程式設計方式或使用 BizTalk 管理主控台來設定 WCF-WSHttp 傳送埠。
設定屬性
BizTalk Explorer 物件模型會針對具有TransportTypeData讀取/寫入屬性的傳送埠,公開名為ITransportInfo的介面卡特定介面。 這項屬性會以 XML 字串之名稱-值配對的格式接受 WCF-WSHttp 傳送埠組態屬性包。
不需要ITransportInfo介面的TransportTypeData屬性。 如果沒有設定此屬性,配接器就會針對 WCF-WSHttp 傳送埠組態使用預設值,如下所示。
下表將列出您可以在 BizTalk 總管物件模型中針對 WCF-WSHttp 傳送埠設定的組態屬性。
屬性名稱 | 類型 | 描述 |
---|---|---|
身分識別 | XML Blob,例如:<identity> <userPrincipalName value="username@contoso.com"> </identity> |
指定此傳送埠所預期服務的識別。 這些設定可讓此傳送埠驗證服務。 在用戶端與服務之間的交握程序中,Windows Communication Foundation (WCF) 基礎結構可確保預期之服務的識別能夠與這個項目的值相符。 預設為空字串。 |
StaticAction | -字串 | 指定傳出訊息的 SOAPAction HTTP 標頭欄位。 這個屬性也可以透過訊息內容屬性 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。 管線元件中的作業屬性。 預設為空字串。 |
OpenTimeout | System.TimeSpan | 指定時間值,表示可供完成通道開啟作業的時間間隔。 預設值:00:01:00 |
SendTimeout | System.TimeSpan | 指定時間值,表示可供完成傳送作業的時間間隔。 如果您使用請求-回應傳送埠,這個值會指定完成整個互動的時間長度,即使服務傳回很大的訊息也是如此。 預設值:00:01:00 |
CloseTimeout | System.TimeSpan | 指定時間值,表示可供完成通道關閉作業的時間間隔。 預設值:00:01:00 |
MaxReceivedMessageSize | 整數 | 指定訊息的大小上限,以位元組為單位, (包括可在網路接收的標頭) 。 訊息的大小受限於配置給每個訊息的記憶體數量。 您可以使用這個屬性來限制遭受拒絕服務 (DoS) 攻擊的風險程度。 預設值:65536 |
MessageEncoding | 列舉 - Text - 使用簡訊編碼器。 - Mtom - 使用訊息傳輸組織機制 1.0 (MTOM) 編碼器。 |
指定用來為 SOAP 訊息編碼的編碼器。 預設值: 文字 |
TextEncoding | 列舉 - unicodeFFF - Unicode BigEndian 編碼。 - utf-16 - 16 位編碼。 - utf-8 - 8 位編碼。 |
指定當 MessageEncoding 屬性設定為 Text時,用來在系結上發出訊息的字元集編碼方式。 預設值: utf-8 |
EnableTransaction | Boolean | 指定是否使用 WS-AtomicTransaction 通訊協定,將訊息傳送至目的地服務,並從交易內容中的 MessageBox 資料庫刪除。 預設值: False |
SecurityMode | 列舉 - 無 - 消息 - 運輸 - TransportWithMessageCredential 如需SecurityMode屬性成員名稱的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-WSHttp 傳輸屬性對話方塊、傳送、安全性索引標籤中的安全性模式屬性。 |
指定使用的安全性類型。 預設值: 無 |
TransportClientCredentialType | 列舉 - 無 - 基本 - Windows - 證書 - 消化 - Ntlm 如需TransportClientCredentialType屬性成員名稱的詳細資訊,請參閱WCF-WSHttp 傳輸屬性對話方塊、傳送、安全性索引標籤中的 WCF-WSHttp 傳輸屬性對話方塊、傳送、安全性索引標籤和開發人員 API 命名空間參考。 |
指定在執行傳送埠驗證時,所要使用的認證類型。 預設值: 無 |
MessageClientCredentialType | 列舉 - 無 - Windows - 使用者 - 證書 如需MessageClientCredentialType屬性成員名稱的詳細資訊,請參閱WCF-WSHttp 傳輸屬性對話方塊、傳送、安全性索引標籤中的訊息用戶端認證類型屬性,以及 UI 指引和開發人員 API 命名空間參考。 |
指定當使用以訊息為基礎的安全性來執行用戶端驗證時,所要使用的認證類型。 預設值: UserName |
AlgorithmSuite | 列舉 如需AlgorithmSuite屬性成員名稱的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-WSHttp 傳輸屬性對話方塊、傳送、安全性索引標籤中的演算法套件屬性。 |
指定訊息加密和 Key Wrap 演算法。 這些演算法會對應到安全性原則語言 (WS-SecurityPolicy) 規格中所指定的演算法。 預設值: Basic256 |
NegotiateServiceCredential | Boolean 如需NegotiateServiceCredential屬性成員名稱的詳細資訊,請參閱WCF-WSHttp 傳輸屬性對話方塊、傳送、安全性索引標籤中的 WCF-WSHttp 傳輸屬性對話方塊、傳送、安全性索引標籤和開發人員 API 命名空間參考。 |
指定是否會在超出範圍的傳送埠提供此服務認證,或是透過交涉程序從此服務取得服務認證給這個傳送埠。 此類交涉是一般訊息交換的前兆。 預設值: False |
EnableSecurityContext | Boolean | 指定是否透過此傳送埠與服務之間的 WS-SecureConversation 交換來建立安全性內容權杖。 如果此屬性設定為 True ,則目的地服務必須支援 WS-SecureConversation。 預設值: True |
ClientCertificate | 字串 | 指定 X.509 憑證的憑證指紋,以便向服務驗證此傳送埠。 如果 ClientCredentialsType 屬性設定為 Certificate,則需要此屬性。 要用於此屬性的憑證必須安裝在目前使用者位置的[我的存放區] 中。 預設為空字串。 |
ServiceCertificate | 字串 | 指定 X.509 憑證的指紋,以便驗證此傳送埠傳送訊息的目標服務。 要用於此屬性的憑證必須安裝在本機電腦位置的[其他人員存放區]。 預設為空字串。 |
AffiliateApplicationName | 字串 | 指定要針對企業單一登入 (SSO) 使用的分支機構應用程式。 預設為空字串。 |
UseSSO | Boolean | 指定是否要使用「單一登入」來擷取用戶端認證,以供目的地伺服器驗證。 預設值: False |
使用者名稱 | String | 當 UseSSO 屬性設定為 False時,指定要用於向目的地伺服器進行驗證的使用者名稱。 您不需要對此屬性使用 domain\user 格式。 預設為空字串。 |
密碼 | String | 當 UseSSO 屬性設定為 False時,指定要用於向目的地伺服器進行驗證的密碼。 預設為空字串。 |
ProxyToUse | 列舉 - 無 - 請勿針對此傳送埠使用 Proxy 伺服器。 - 預設值 - 使用裝載此傳送埠之傳送處理常式中的 Proxy 設定。 - UserSpecified - 使用 ProxyAddress 屬性中指定的 Proxy 伺服器。 |
指定要針對外寄 HTTP 流量使用哪一個 Proxy 伺服器。 預設值: 無 |
ProxyAddress | 字串 | 指定 Proxy 伺服器的位址。 視安全性組態而定,請使用 HTTPs 或 HTTP 配置。 此位址後面可以接著冒號和埠號碼,例如 。 http://127.0.0.1:8080 預設為空字串。 |
ProxyUserName | 字串 | 指定要用於 Proxy 的使用者名稱。 WCF-WSHttp 配接器會利用緩衝傳輸模式中的 WSHttpBinding 與端點通訊。 只有在安全性模式為Transport或None時,才適用WSHttpBinding的 Proxy 認證。 如果您將 SecurityMode 屬性設定為 Message 或 TransportWithMessageCredential,WCF-WSHttp 配接器不會使用 ProxyUserName 和 ProxyPassword 屬性中指定的認證來驗證 Proxy。 注意: WCF-WSHttp 傳送配接器會使用 Proxy 的基本驗證。 預設為空字串。 |
ProxyPassword | 字串 | 指定要用於 Proxy 的密碼。 預設為空字串。 |
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 | 列舉 - Base64 - Base64 編碼。 - 十六進位 - 十六進位編碼。 - 字串 - 文字編碼 - UTF-8。 - XML - WCF 配接器會使用 InboundBodyPathExpression中主體路徑運算式所選取之節點的外部 XML,建立 BizTalk 訊息本文。 |
指定 WCF-WSHttp 傳送配接器用來解碼 由 InboundBodyPathExpression中所指定主體路徑所識別之節點的編碼類型。 如果 InboundBodyLocation 屬性設定為 UseBodyPath,則需要這個屬性。 此屬性只對請求-回應連接埠有效。 預設值: XML |
PropagateFaultMessage | Boolean - True - 將輸出處理失敗的訊息路由傳送至訂閱應用程式 (,例如另一個接收埠或協調流程排程) 。 - False - 暫停失敗的訊息,並在 NACK) (產生負面通知。 |
指定要路由傳送或擱置在輸出處理中失敗的訊息。 此屬性只對請求-回應連接埠有效。 預設值: True |
使用 BizTalk 管理主控台設定 WCF-WSHttp 傳送埠
您可以在 BizTalk 管理主控台中設定 WCF-WSHttp 傳送埠配接器變數。 如果沒有設定傳送埠的屬性,系統就會針對 WCF-WSHttp 傳送埠組態使用預設值,如上表所示。
設定 WCF-WSHttp 傳送埠的變數
在 [BizTalk 管理主控台] 中建立新的傳送埠,或按兩下現有的傳送埠進行修改。 如需詳細資訊,請參閱 如何建立傳送埠。 針對 [一般] 索引標籤的 [傳輸] 區段中的 [類型] 選項,設定所有傳送埠選項並指定WCF-WSHttp。
在 [一般] 索引標籤的 [傳輸] 區段中,按一下[類型] 旁的 [設定] 按鈕。
在 [WCF-WSHttp 傳輸內容 ] 對話方塊的 [ 一般 ] 索引標籤上,設定端點位址、服務識別,以及 WCF-WSHttp 傳送埠的 SOAPAction HTTP 標頭。 如需WCF-WSHttp 傳輸屬性對話方塊中 [一般] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-WSHttp 傳輸屬性對話方塊、傳送、一般索引標籤。
在 [WCF-WSHttp 傳輸屬性 ] 對話方塊的 [ 系結 ] 索引標籤上,設定逾時、編碼和交易屬性。 如需WCF-WSHttp 傳輸屬性對話方塊中 [系結] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-WSHttp 傳輸屬性對話方塊、傳送、系結索引標籤。
在 [WCF-WSHttp 傳輸內容 ] 對話方塊的 [ 安全性 ] 索引標籤上,定義 WCF-WSHttp 傳送埠的安全性功能。 如需WCF-WSHttp 傳輸屬性對話方塊中 [安全性] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-WSHttp 傳輸屬性對話方塊、傳送、安全性索引標籤。
在 [WCF-WSHttp 傳輸內容 ] 對話方塊的 [ Proxy ] 索引標籤上,設定 WCF-WSHttp 傳送埠的 Proxy 設定。 如需WCF-WSHttp 傳輸屬性對話方塊中 Proxy 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-WSHttp 傳輸屬性對話方塊、傳送、Proxy 索引標籤。
在 [WCF-WSHttp 傳輸屬性 ] 對話方塊的 [ 訊息 ] 索引標籤上,指定 SOAP Body 元素的資料選取範圍。 如需WCF-WSHttp 傳輸屬性對話方塊中 [訊息] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-WSHttp 傳輸屬性對話方塊、傳送、訊息索引標籤。
以程式設計方式設定 WCF-WSHttp 傳送埠
您可以使用下列格式來設定屬性:
<CustomProps>
<ServiceCertificate vt="8" />
<UseSSO vt="11">0</UseSSO>
<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>
<Identity vt="8" />
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<SecurityMode vt="8">Message</SecurityMode>
<TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
<TextEncoding vt="8">utf-8</TextEncoding>
<NegotiateServiceCredential vt="11">-1</NegotiateServiceCredential>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<ClientCertificate vt="8" />
<ProxyUserName vt="8" />
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<ProxyToUse vt="8">Default</ProxyToUse>
<EnableTransaction vt="11">0</EnableTransaction>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<EstablishSecurityContext vt="11">-1</EstablishSecurityContext>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
<ProxyAddress vt="8" />
<MessageEncoding vt="8">Text</MessageEncoding>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
下列程式碼片段會說明如何建立 WCF-WSHttp 傳送埠:
// Use BizTalk Explorer object model to create new WCF-WSHttp 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>
<MessageEncoding vt=""8"">Text</MessageEncoding>
<TextEncoding vt=""8"">utf-8</TextEncoding>
<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-WSHttp"];
sendPort.PrimaryTransport.Address = "http://mycomputer/samplepath";
sendPort.PrimaryTransport.TransportTypeData = transportConfigData; // propertyData; // need to change
sendPort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];
// Save
explorer.SaveChanges();
另請參閱
WCF 配接器屬性架構和屬性設定 WCF-WSHttp 配接器指定 WCF 配接器的訊息本文,以使用 WCF 配接器設定動態傳送埠內容屬性的 WCF配接器安裝憑證