共用方式為


如何設定 WCF-Custom 傳送埠

您可以使用程式設計方式或使用 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 屬性中使用的系結組態。

    • 描述:指定 wsFederationHttpBindingcustomBinding 元素之 bindingConfiguration 屬性<issuer>所參考的系結組態,指出發出安全性令牌的安全性令牌服務 (STS) 。 如需 <issuer> 元素的詳細資訊,請參閱 WCF 組態架構:<issuer>

      系結資訊包括 <issuer> 元素、wsFederationHttpBindingcustomBinding,可以透過 WCF-Custom 和 WCF-CustomIsolated 配接器的 BindingConfiguration 屬性來設定。 此屬性的所有參考系結組態都必須以 <bindings> 元素形式放置。

      您無法在 [傳輸屬性] 對話框中的 [ 系結] 索引標籤上設定這個屬性。 您可以在 WCF-Custom 和 WCF-CustomIsolated 配接器的傳輸屬性對話框中,透過 [ 匯入/匯出 ] 索引標籤匯入和匯出此屬性。

      專案的 bindingConfiguration 屬性 <issuer> 必須參考這個屬性中的有效系結名稱。

      參考的系結組態中的<issuer>元素如果這個參考鏈結未建立循環相依性,也可以參考這個屬性中的不同系結組態。

      預設值是空字串。

使用 BizTalk 管理控制台設定 WCF-Custom 傳送埠

您可以在 BizTalk 管理控制台中設定 WCF-Custom 傳送埠配接器變數。 如果未設定傳送埠的屬性,則會使用 WCF-Custom 傳送埠組態的預設值,如上表所示。

設定 WCF-Custom 傳送埠的變數

  1. 如果您打算在設定 WCF-Custom 配接器時使用 WCF 擴充點,例如自定義綁定項、自定義行為元素和自定義通道元件,您必須將實作擴充點和所有相依元件的元件新增至 BizTalk 處理電腦 (運行時間電腦) 和系統管理計算機上的全域程式集緩存。 此外,您必須向 machine.config 檔案註冊延伸模組元件。 如需如何搭配 WCF 自定義配接器使用 WCF 擴充點的詳細資訊,請參閱如何使用 WCF 配接器 啟用 WCF 擴充點

  2. 在 BizTalk 管理控制台中,建立新的傳送埠,或按兩下現有的傳送埠加以修改。 如需詳細資訊,請參閱 如何建立傳送埠。 設定所有傳送埠選項,並在UI指引和開發人員 API 命名空間參考的 [一般] 索引標籤的 [傳輸] 區段中,為 [類型] 選項指定 WCF-Custom

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

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

  5. [WCF-Custom 傳輸屬性] 對話方塊的 [系結] 索引卷標上,設定 WCF 不同類型的預先定義或自定義系結。 如需系結索引標籤在WCF-Custom 傳輸屬性對話方塊中的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-Custom 傳輸屬性對話框、傳送、系結索引標籤。

  6. [WCF-Custom 傳輸屬性 ] 對話方塊的 [ 行為] 索引標籤上,設定此傳送埠的端點行為。 端點行為是一組行為擴充元素,用於修改或擴展服務或用戶端的功能。 如需 [WCF-Custom 傳輸屬性] 對話框中之 [行為] 索引標籤的詳細資訊,請參閱 UI 指引和開發人員 API 命名空間參考中的 WCF-Custom 傳輸屬性對話框、傳送、行為索引標籤。

  7. [WCF-Custom 傳輸屬性 ] 對話方塊的 [ 認證 ] 索引標籤上,指定傳送訊息時要使用的認證。 如需 [WCF-Custom 傳輸屬性] 對話方塊中 [認證] 索引標籤的詳細資訊,請參閱UI指引和開發人員 API 命名空間參考中的 [WCF-Custom 傳輸屬性對話方塊、傳送、認證] 索引標籤。

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

  9. [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 配接器內容屬性設定動態傳送埠<系結>端點行為的<行為><配置>