Condividi tramite


Come configurare una porta di trasmissione WCF-Custom

È possibile configurare una porta di trasmissione WCF-Custom a livello di codice o tramite la console di amministrazione bizTalk.

Proprietà di configurazione

Il modello a oggetti di BizTalk Explorer espone un'interfaccia specifica dell'adapter per le porte di trasmissione denominate ITransportInfo con la proprietà di lettura/scrittura TransportTypeData . Questa proprietà accetta un contenitore delle proprietà di configurazione della porta di trasmissione WCF-Custom sotto forma di coppia nome-valore di stringhe XML.

La proprietà TransportTypeData dell'interfaccia ITransportInfo non è obbligatoria. Se non è impostata, l'adapter usa i valori predefiniti per la configurazione della porta di trasmissione WCF-Custom, come indicato nella tabella seguente.

L'elenco seguente descrive le proprietà di configurazione che è possibile impostare nel modello a oggetti di BizTalk Explorer per WCF-Custom porte di trasmissione:

  • Nome proprietà: Identity

    • Tipo: XML Blob

      Esempio:

      <identity>
      <userPrincipalName value="username@contoso.com" />
      </identity>
      
    • Descrizione: specificare l'identità del servizio prevista da questa porta di trasmissione. Queste impostazioni consentono a questa porta di trasmissione di autenticare il servizio. Nel processo di handshake tra il client e il servizio, l'infrastruttura WCF garantirà che l'identità del servizio previsto corrisponda ai valori di questo elemento. I valori che è possibile specificare per la proprietà Identity variano in base alla configurazione di sicurezza.

      Il valore predefinito è una stringa vuota.

  • Nome proprietà: StaticAction

    • Tipo: Stringa

    • Descrizione: Specificare l'intestazione SOAPAction per i messaggi in uscita. Questa proprietà può essere impostata anche tramite la proprietà del contesto del messaggio WCF.Action in una pipeline o in un'orchestrazione. È possibile specificare questo valore in due modi diversi: il formato della singola azione e il formato di mapping delle azioni. Se si imposta questa proprietà nel formato a singola azione, ad esempio http://contoso.com/Svc/Op1, l'intestazione SOAPAction per i messaggi in uscita viene sempre impostata sul valore specificato in questa proprietà.

      Se si imposta questa proprietà nel formato di mapping delle azioni, l'intestazione SOAPAction in uscita viene determinata dalla proprietà del contesto BTS.Operation. Ad esempio, se questa proprietà è impostata sul formato XML seguente e la proprietà BTS.Operation è impostata su Op1, l'adattatore di trasmissione WCF usa http://contoso.com/Svc/Op1 per l'intestazione SOAPAction in uscita.

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

      Se i messaggi in uscita provengono da una porta di orchestrazione, le istanze di orchestrazione impostano dinamicamente la proprietà BTS.Operation con il nome dell'operazione della porta. Se i messaggi in uscita vengono instradati con il routing basato sul contenuto, è possibile impostare la proprietà BTS.Operation nei componenti della pipeline.

      Il valore predefinito è una stringa vuota.

  • Nome proprietà: BindingType

    • Tipo: Enum

      Per ulteriori informazioni sui nomi dei membri della proprietà BindingType, consultare la proprietà Binding Type nella scheda Proprietà trasportoWCF-Custom, Invia, Binding all'interno della guida UI e riferimento allo spazio dei nomi API per sviluppatori.

    • Descrizione: specificare il tipo di associazione da usare per l'endpoint usato da questa porta di trasmissione.

      Se si usa un'associazione personalizzata, la proprietà BindingType può essere configurata con le associazioni personalizzate. Per ulteriori informazioni su come utilizzare le associazioni personalizzate, vedere Come abilitare i punti di estensibilità WCF con gli adattatori WCF.

  • Nome proprietà: BindingConfiguration

    • Tipo: XML BLOB

      Esempio:

      <binding name="netNamedPipeBinding">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="None" />
      </binding>
      
    • Descrizione: specificare una stringa XML con l'elemento <binding> per configurare tipi diversi di associazioni predefinite fornite da Windows Communication Foundation (WCF). Per ulteriori informazioni sul binding fornito dal sistema e sul binding personalizzato, vedi gli argomenti appropriati elencati in Vedi anche.

      BizTalk Server non supporta tutti i tipi di elementi dell'estensione di associazione che è possibile configurare con la proprietà BindingConfiguration .

      Il valore predefinito è una stringa vuota.

  • Nome proprietà: EndpointBehaviorConfiguration

    • Tipo: XML BLOB

      Esempio:

      <behavior name="sampleBehavior">
      <callbackTimeouts />
      </behavior>
      
    • Descrizione: specificare una stringa XML con l'elemento <behavior> dell'elemento <endpointBehaviors> per configurare le impostazioni di comportamento di un endpoint WCF. Per altre informazioni sull'elemento, vedere l'argomento <endpointBehaviors> appropriato in Vedere anche.

      BizTalk Server non supporta tutti i tipi di elementi dell'estensione del comportamento che è possibile configurare con la proprietà EndpointBehaviorConfiguration .

      Il valore predefinito è una stringa vuota.

  • Nome proprietà: AffiliateApplicationName

    • Tipo: Stringa

    • Descrizione: specificare l'applicazione affiliata da usare per Enterprise Single Sign-On (SSO).

      Il valore predefinito è una stringa vuota.

  • Nome proprietà: UseSSO

    • Tipo: Boolean

    • Descrizione: specificare se usare Single Sign-On per recuperare le credenziali client per l'autenticazione con il server di destinazione.

      Valore predefinito: False

  • Nome Proprietà: UserName

    • Tipo: Stringa

    • Descrizione: specificare il nome utente da usare per l'autenticazione con il server di destinazione quando la proprietà UseSSO è impostata su False. Non è necessario usare il domain\user formato per questa proprietà.

      Il valore predefinito è una stringa vuota.

  • Nome proprietà: Password

    • Tipo: Stringa

    • Descrizione: specificare la password da usare per l'autenticazione con il server di destinazione quando la proprietà UseSSO è impostata su False.

      Il valore predefinito è una stringa vuota.

  • Nome proprietà: OutboundBodyLocation

    • Tipo: Enum

      • UseBodyElement: utilizzare la parte del corpo del messaggio BizTalk per creare il contenuto dell'elemento Body SOAP per un messaggio in uscita.
      • UseTemplate: utilizzare il modello fornito nella proprietà OutboundXMLTemplate per creare il contenuto dell'elemento Soap Body per un messaggio in uscita.

      Per altre informazioni su come utilizzare la proprietà OutboundBodyLocation , vedere Specifica del corpo del messaggio per gli adapter WCF.

    • Descrizione: specificare la selezione dei dati per l'elemento Soap Body dei messaggi WCF in uscita.

      Valore predefinito: UseBodyElement

  • Nome proprietà: OutboundXMLTemplate

    • Tipo: Stringa

      Per altre informazioni su come utilizzare la proprietà OutboundXMLTemplate , vedere Specifica del corpo del messaggio per gli adapter WCF.

    • Descrizione: specificare il modello in formato XML per il contenuto dell'elemento SOAP Body di un messaggio in uscita. Questa proprietà è obbligatoria se la proprietà OutboundBodyLocation è impostata su UseTemplate.

      Il valore predefinito è una stringa vuota.

  • Nome proprietà: InboundBodyLocation

    • Tipo: Enum

      • UseBodyElement: usare il contenuto dell'elemento SOAP Body di un messaggio in arrivo per creare la parte del corpo del messaggio BizTalk. Se l'elemento Body ha più di un elemento figlio, solo il primo elemento diventa la parte del corpo del messaggio BizTalk. Questa proprietà è valida solo per le porte solicit-response.
      • UseEnvelope: creare la parte del corpo del messaggio BizTalk dall'intera SOAP Envelope di un messaggio in arrivo.
      • UseBodyPath: usare l'espressione del percorso del corpo nella proprietà InboundBodyPathExpression per creare la parte del corpo del messaggio BizTalk. L'espressione del percorso del corpo viene valutata in relazione all'elemento immediatamente figlio dell'elemento SOAP Body di un messaggio in arrivo. Questa proprietà è valida solo per le porte solicit-response.

      Per altre informazioni su come utilizzare la proprietà InboundBodyLocation , vedere Specifica del corpo del messaggio per gli adapter WCF.

    • Descrizione: specificare la selezione dei dati per l'elemento SOAP Body dei messaggi WCF in ingresso.

      Valore predefinito: UseBodyElement

  • Nome proprietà: InboundBodyPathExpression

    • Tipo: Stringa

      Per altre informazioni su come utilizzare la proprietà InboundBodyPathExpression , vedere Proprietà e schema delle proprietà degli adapter WCF.

    • Descrizione: specificare l'espressione del percorso del corpo per identificare una parte specifica di un messaggio in arrivo usato per creare la parte del corpo del messaggio BizTalk. Questa espressione del percorso del corpo viene valutata rispetto all'elemento figlio immediato del nodo Corpo SOAP di un messaggio in arrivo. Se questa espressione di percorso del corpo restituisce più di un nodo, viene scelto solo il primo nodo per la parte del corpo del messaggio BizTalk. Questa proprietà è obbligatoria se la proprietà InboundBodyLocation è impostata su UseBodyPath. Questa proprietà è valida solo per le porte solicit-response.

      Il valore predefinito è una stringa vuota.

  • Nome proprietà: InboundNodeEncoding

    • Tipo: Enumerazione

      • XML
      • Base64: codifica Base64
      • Esadecimale: codifica esadecimale
      • Stringa: codifica del testo; UTF-8
      • XML: gli adapter WCF creano il corpo del messaggio BizTalk con il codice XML esterno del nodo selezionato dall'espressione del percorso del corpo in InboundBodyPathExpression.
    • Descrizione: specificare il tipo di codifica utilizzato dall'adattatore di trasmissione WCF-Custom per decodificare il nodo identificato dal percorso del corpo specificato in InboundBodyPathExpression. Questa proprietà è obbligatoria se la proprietà InboundBodyLocation è impostata su UseBodyPath. Questa proprietà è valida solo per le porte solicit-response.

      Valore predefinito: XML

  • Nome proprietà: PropagateFaultMessage

    • Tipo: Boolean

      • True: instradare il messaggio che non riesce nell'elaborazione in uscita a un'applicazione sottoscrittrice, ad esempio un'altra porta di ricezione o un programma di orchestrazione.
      • False: sospendere i messaggi non riusciti e generare un riconoscimento negativo (NACK).
    • Descrizione: specificare se instradare o sospendere i messaggi che non sono riusciti nell'elaborazione in uscita.

      Questa proprietà è valida solo per le porte solicit-response.

      Valore predefinito: True

  • Nome della proprietà: ReferencedBindings

    • Tipo: XML BLOB

      Esempio:

      <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>
      

      La proprietà ReferencedBinding non deve contenere la configurazione dell'associazione utilizzata nella proprietà BindingConfiguration .

    • Descrizione: specificare le configurazioni di associazione a cui fa riferimento l'attributo bindingConfiguration dell'elemento <issuer> per wsFederationHttpBinding e customBinding, che indica il servizio token di sicurezza (STS) che rilascia i token di sicurezza. Per altre informazioni sull'elemento <issuer> , vedere Schema di configurazione WCF: <issuer>.

      Le informazioni di associazione, incluso l'elemento <issuer> per wsFederationHttpBinding e customBinding, possono essere configurate tramite la proprietà BindingConfiguration degli adattatori WCF-Custom e WCF-CustomIsolated. Tutte le configurazioni di associazione a cui si fa riferimento per questa proprietà devono essere inserite sotto forma di <bindings> elemento .

      Non è possibile configurare questa proprietà nella scheda Binding della finestra di dialogo delle proprietà di trasporto. È possibile importare ed esportare questa proprietà tramite la scheda Importazione/Esportazione nella finestra di dialogo delle proprietà di trasporto degli adattatori WCF-Custom e WCF-CustomIsolated.

      L'attributo bindingConfiguration dell'elemento <issuer> deve fare riferimento a un nome di associazione valido in questa proprietà.

      L'elemento <issuer> nelle configurazioni di associazione a cui si fa riferimento può anche fare riferimento a una configurazione di associazione diversa in questa proprietà se questa catena di riferimenti non crea una dipendenza circolare.

      Il valore predefinito è una stringa vuota.

Configurare una porta di trasmissione WCF-Custom con la console di amministrazione BizTalk

È possibile impostare WCF-Custom variabili dell'adapter di porta di trasmissione nella console di amministrazione di BizTalk. Se le proprietà non sono impostate per la porta di trasmissione, vengono usati i valori predefiniti per la configurazione della porta di trasmissione WCF-Custom, come indicato nella tabella precedente.

Configurare le variabili per una porta di trasmissione WCF-Custom

  1. Se si prevede di utilizzare i punti di estendibilità WCF, ad esempio gli elementi di associazione personalizzati, l'elemento comportamento personalizzato e i componenti del canale personalizzati durante la configurazione dell'adattatore WCF-Custom, è necessario aggiungere gli assembly che implementano i punti di estendibilità e tutti gli assembly dipendenti alla Global Assembly Cache sia nel computer di elaborazione BizTalk (computer di runtime) che nel computer di amministrazione. Inoltre, è necessario registrare i componenti di estensione nel file machine.config. Per altre informazioni su come usare i punti di estendibilità WCF con l'adapter personalizzato WCF, vedere How to Enable the WCF Extensibility Points with the WCF Adapters.

  2. Nella console di amministrazione bizTalk creare una nuova porta di trasmissione o fare doppio clic su una porta di trasmissione esistente per modificarla. Per altre informazioni, vedere Come creare una porta di trasmissione. Configurare tutte le opzioni della porta di trasmissione e specificare WCF-Custom per l'opzione Tipo nella sezione Trasporto della scheda Generale nella guida all'interfaccia utente e informazioni di riferimento sullo spazio dei nomi dell'API per sviluppatori.

  3. Nella sezione Trasporto della scheda Generale fare clic sul pulsante Configura accanto a Tipo.

  4. Nella finestra di dialogo Proprietà trasportoWCF-Custom, nella scheda Generale, configura l'indirizzo dell'endpoint, l'identità del servizio e l'intestazione SOAPAction per la porta di invio WCF-Custom. Per altre informazioni sulla scheda Generale nella finestra di dialogo WCF-Custom Proprietà di trasporto, vedere la scheda WCF-Custom Proprietà di trasporto, Invia, Generale nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.

  5. Nella finestra di dialogo Proprietà trasportoWCF-Custom, nella scheda Binding, configurare tipi diversi di collegamenti predefiniti o personalizzati per WCF. Per altre informazioni sulla scheda Binding nella finestra di dialogo Proprietà trasportoWCF-Custom, vedere la scheda Proprietà trasportoWCF-Custom, Invia, Binding nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.

  6. Nella finestra di dialogo Proprietà trasportoWCF-Custom configurare il comportamento dell'endpoint per questa porta di trasmissione nella scheda Comportamento . Un comportamento dell'endpoint è un set di elementi di estensione del comportamento che modificano o estendono la funzionalità del servizio o del client. Per ulteriori informazioni sulla scheda Comportamento nella finestra di dialogo Proprietà TrasportoWCF-Custom, consultare la scheda Proprietà TrasportoWCF-Custom, Invia, Comportamento nella guida e riferimento dell'interfaccia utente e dello spazio dei nomi API per sviluppatori.

  7. Nella finestra di dialogo Proprietà trasportoWCF-Custom specificare le credenziali da utilizzare durante l'invio di messaggi nella scheda Credenziali . Per ulteriori informazioni sulla scheda Credenziali nella finestra di dialogo Proprietà di trasportoWCF-Custom, vedere la scheda Proprietà di trasportoWCF-Custom, Invia, Credenziali nella guida dell'interfaccia utente e riferimenti allo spazio dei nomi delle API per sviluppatori.

  8. Nella finestra di dialogo WCF-Custom Proprietà trasporto, nella scheda Messaggi, specificare la selezione dei dati per l'elemento Body SOAP. Per ulteriori informazioni sulla scheda Messaggi nella finestra di dialogo Proprietà trasportoWCF-Custom, consultare la scheda Proprietà trasportoWCF-Custom, Invio, Messaggi nella guida dell'interfaccia utente e nella documentazione di riferimento sullo spazio dei nomi dell'API per sviluppatori.

  9. Nella finestra di dialogo Proprieta' trasportoWCF-Custom, nella scheda Import/Export importare ed esportare le proprietà Indirizzo (URI) e Identità endpoint nella scheda Generale, informazioni di associazione nella scheda Binding e comportamento dell'endpoint nella scheda Comportamento per questa porta di invio. Per ulteriori informazioni sulla scheda Import/Export nella finestra di dialogo WCF-Custom Proprietà di Trasporto, vedere la finestra di dialogo Proprietà di TrasportoWCF-Custom, la scheda Invia, Importa-Esporta nella guida dell'interfaccia utente e riferimento dello spazio dei nomi delle API per sviluppatori.

Configurare programmaticamente una porta di invio WCF-Custom

È possibile usare il formato seguente per impostare le proprietà:

<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>

Il frammento di codice seguente illustra la creazione di una porta di trasmissione WCF-Custom:

Attenzione

Questo esempio o materiale sussidiario fa riferimento a informazioni riservate, ad esempio una stringa di connessione o un nome utente e una password. Non inserire mai questi valori come valori codificati nel codice e assicurati di proteggere i dati riservati utilizzando l'autenticazione più sicura disponibile. Per altre informazioni, consultare la documentazione seguente:

// 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();

Vedere anche

Schema e proprietà degli adapter WCFSpecificando il corpo del messaggio per gli adapter WCFInstallazione dei certificati per gli adapter WCFConfigurando l'adattatore WCF-CustomConfigurazione delle porte di invio dinamiche utilizzando le proprietà del contesto degli adapter WCF<associazioni><comportamento> delle <comportamentiEndpoint>