共用方式為


如何設定 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屬性中使用的系結組態。

    • 描述:指定wsFederationHttpBindingcustomBinding元素的bindingConfiguration屬性 <issuer> 所參考的系結組態,這表示發出安全性權杖的 STS (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-自訂傳輸屬性] 對話方塊的 [ 一般 ] 索引標籤上,設定端點位址、服務識別,以及 WCF-Custom 傳送埠的 SOAPAction 標頭。 如需WCF-自訂傳輸屬性對話方塊中 [一般] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-自訂傳輸屬性對話方塊、傳送、一般索引標籤。

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

  6. [WCF-自訂傳輸屬性] 對話方塊的 [ 行為 ] 索引標籤上,設定此傳送埠的端點行為。 端點行為是一組行為延伸模組項目,會修改或延伸服務或用戶端功能。 如需WCF-自訂傳輸屬性對話方塊中 [行為] 索引標籤的詳細資訊,請參閱UI 指引和開發人員 API 命名空間參考中的WCF-自訂傳輸屬性對話方塊、傳送、行為索引標籤。

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

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

  9. [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配接器設定動態傳送埠><