Freigeben über


Konfigurieren eines WCF-NetTcp-Sendeports

Sie können einen WCF-NetTcp-Sendeport entweder programmgesteuert oder über die BizTalk-Verwaltungskonsole konfigurieren.

Konfigurationseigenschaften

Das BizTalk-Explorer-Objektmodell macht eine adapterspezifische Schnittstelle für Sendeports namens ITransportInfo verfügbar, die über die TransportTypeData-Lese-/Schreibeigenschaft verfügt. Diese Eigenschaft akzeptiert den Konfigurationseigenschaftenbehälter für den WCF-NetTcp-Sendeport in Form eines Name/Wert-Paars aus XML-Zeichenfolgen.

Die TransportTypeData-Eigenschaft der ITransportInfo-Schnittstelle ist nicht erforderlich. Falls nicht festgelegt, verwendet der Adapter die Standardwerte für die Konfiguration des WCF-NetTcp-Sendeports, die in der folgenden Tabelle aufgeführt sind.

In der folgenden Tabelle sind die Konfigurationseigenschaften aufgelistet, die Sie im Objektmodell von BizTalk-Explorer für WCF-NetTcp-Sendeports festlegen können.

Eigenschaftenname type Beschreibung
Identität XML-Blob, z. B.:

<identity>
<userPrincipalName value="username@contoso.com"/>
</identity>
Gibt die Identität des Diensts an, der von diesem Sendeport erwartet wird. Diese Einstellungen ermöglichen dem Sendeport die Authentifizierung dieses Diensts. Während des Handshakevorgangs zwischen Client und Dienst stellt die Windows Communication Foundation-Infrastruktur (WCF) sicher, dass die Identität des erwarteten Diensts mit den Werten dieses Elements übereinstimmt.

Der Standardwert ist eine leere Zeichenfolge.
StaticAction String Geben Sie das SOAPAction-Headerfeld für ausgehende Nachrichten an. Diese Eigenschaft kann auch über die Nachrichtenkontexteigenschaft WCF festgelegt werden . Aktion in einer Pipeline oder Orchestrierung.

Sie können diesen Wert auf zwei verschiedene Arten angeben: das einzelne Aktionsformat und das Aktionszuordnungsformat. Wenn Sie diese Eigenschaft beispielsweise im einzelnen Aktionsformat festlegen, http://contoso.com/Svc/Op1wird der SOAPAction-Header für ausgehende Nachrichten immer auf den in dieser Eigenschaft angegebenen Wert festgelegt.

Wenn Sie diese Eigenschaft im Aktionszuordnungsformat festlegen, wird der ausgehende SOAPAction-Header vom BTS bestimmt. Vorgangskontexteigenschaft . Beispielsweise, wenn diese Eigenschaft auf das folgende XML-Format und das BTS festgelegt ist. Die Vorgangseigenschaft ist auf Op1 festgelegt, die der WCF-Sendeadapter für den ausgehenden SOAPAction-Header verwendethttp://contoso.com/Svc/Op1.

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

Wenn ausgehende Nachrichten von einem Orchestrierungsport stammen, legen Orchestrierungsinstanzen den BTS dynamisch fest. Operation-Eigenschaft mit dem Vorgangsnamen des Ports. Wenn ausgehende Nachrichten mit inhaltsbasiertem Routing weitergeleitet werden, können Sie btS festlegen. Vorgangseigenschaft in Pipelinekomponenten.

Der Standardwert ist eine leere Zeichenfolge.
OpenTimeout System.TimeSpan Legt einen Wert für den Zeitraum fest, der bis zum vollständigen Öffnen eines Kanals zur Verfügung steht.

Standardwert: 00:01:00
SendTimeout System.TimeSpan Legt einen Wert für den Zeitraum fest, der bis zum Abschluss eines Sendevorgangs zur Verfügung steht. Wenn Sie einen Sendeport vom Typ "Antwort anfragen" verwenden, gibt dieser Wert den Zeitraum an, in dem die gesamte Interaktion abgeschlossen sein muss, auch wenn eine umfangreiche Nachricht vom Dienst zurückgegeben wird.

Standardwert: 00:01:00
CloseTimeout System.TimeSpan Legt einen Wert für den Zeitraum fest, der bis zum vollständigen Schließen eines Kanals zur Verfügung steht.

Standardwert: 00:01:00
Maxreceivedmessagesize Integer Gibt die Maximalgröße in Bytes für Nachrichten einschließlich der Header an, die über das Netzwerk empfangen werden können. Die Nachrichtengröße wird durch den für jede Nachricht reservierten Arbeitsspeicher begrenzt. Sie können diese Eigenschaft verwenden, um das Risiko für Denial-of-Service-Angriffe (DoS-Angriffe) einzuschränken.

Der WCF-NetTcp-Adapter nutzt die NetTcpBinding-Klasse im gepufferten Übertragungsmodus, um mit einem Endpunkt zu kommunizieren. Für den gepufferten Transportmodus ist die NetTcpBinding.MaxBufferSize-Eigenschaft immer gleich dem Wert dieser Eigenschaft.

Standardwert: 65536
EnableTransaction Boolean Geben Sie an, ob eine Nachricht an den Zieldienst übertragen und aus der MessageBox-Datenbank in einem Transaktionskontext gelöscht wird, indem Sie das in der TransactionProtocol-Eigenschaft angegebene Transaktionsprotokoll verwenden.

Standardwert: False
TransactionProtocol Enumeration

- OleTransaction
- WS-AtomicTransaction
Gibt das mit dieser Bindung zu verwendende Transaktionsprotokoll an.

Standardwert: OleTransaction
Securitymode Enumeration

- Keine
- Nachricht
- Transport
- Transportwithmessagecredential

Weitere Informationen zu den Membernamen für die SecurityMode-Eigenschaft finden Sie in der Eigenschaft Sicherheitsmodus im Dialogfeld WCF-NetTcp-Transporteigenschaften, auf der Registerkarte Senden, Sicherheit in der Referenz zu Benutzeroberflächenleitfaden und Entwickler-API-Namespace.
Gibt den verwendeten Sicherheitstyp an.

Standardwert: Transport
TransportClientCredentialType Enumeration

- Keine
- Windows
- Zertifikat

Weitere Informationen zu den Membernamen für die TransportClientCredentialType-Eigenschaft finden Sie in der Eigenschaft Transportclientanmeldeinformationstyp im Dialogfeld WCF-NetTcp-Transporteigenschaften, auf der Registerkarte Senden, Sicherheit in der Referenz zu Benutzeroberflächenleitfaden und API-Namespace für Entwickler.
Legt den Typ der Anmeldeinformationen für die Sendeportauthentifizierung fest.

Standardwert: Windows
TransportProtectionLevel Enumeration

- Keine : Kein Schutz.
- Vorzeichen : Nachrichten sind signiert.
- EncryptAndSign : Nachrichten werden verschlüsselt und signiert.
Gibt die Sicherheit auf TCP-Transportebene an. Das Signieren von Nachrichten verringert das Risiko, dass Nachrichten während der Übertragung durch Dritte manipuliert werden. Mit der Verschlüsselung können Daten während des Transports geschützt werden.

Standardwert: EncryptAndSign
MessageClientCredentialType Enumeration

- Keine
- Windows
- Nutzername
- Zertifikat

Weitere Informationen zu den Membernamen für die MessageClientCredentialType-Eigenschaft finden Sie in der Eigenschaft Nachrichtenclient-Anmeldeinformationstyp im Dialogfeld WCF-NetTcp-Transporteigenschaften, Auf der Registerkarte Senden, Sicherheit in der Referenz zu API-Namespaces für Benutzeroberflächen und Entwickler.
Gibt den Typ der Anmeldeinformationen an, der für die Clientauthentifizierung mit nachrichtenbasierter Sicherheit verwendet werden soll.

Standardwert: Windows
AlgorithmSuite Enumeration

Weitere Informationen zu den Membernamen für die AlgorithmSuite-Eigenschaft finden Sie unter der Algorithm Suite-Eigenschaft im Dialogfeld WCF-NetTcp-Transporteigenschaften, auf der Registerkarte Senden, Sicherheit in der Referenz zu UI-Anleitungen und Entwickler-API-Namespace.
Legt Nachrichtenverschlüsselung und Schlüsselverpackungsalgorithmen fest. Diese Algorithmen sind den Algorithmen in der Spezifikation der Sicherheitsrichtliniensprache (WS-SecurityPolicy) zugeordnet.

Standardwert: Basic256
ClientCertificate String Geben Sie den Fingerabdruck des X.509-Zertifikats für die Authentifizierung dieses Sendeports gegenüber Diensten an. Diese Eigenschaft ist erforderlich, wenn die ClientCredentialsType-Eigenschaft auf Certificate festgelegt ist. Das Zertifikat, das für diese Eigenschaft verwendet werden soll, muss im Speicher "Mein " am Speicherort "Aktueller Benutzer" installiert werden.

Der Standardwert ist eine leere Zeichenfolge.
AffiliateApplicationName String Gibt die Partneranwendung für Einmaliges Anmelden für Unternehmen (SSO) an.

Der Standardwert ist eine leere Zeichenfolge.
UseSSO Boolean Geben Sie an, ob Clientanmeldeinformationen für die Authentifizierung am Zielserver mittels Einmaligem Anmelden abgerufen werden sollen.

Standardwert: False
UserName String Geben Sie den Benutzernamen an, der für die Authentifizierung mit dem Zielserver verwendet werden soll, wenn die UseSSO-Eigenschaft auf False festgelegt ist. Für diese Eigenschaft muss nicht das Format Domäne\Benutzer verwendet werden.

Der Standardwert ist eine leere Zeichenfolge.
Kennwort String Geben Sie das Kennwort an, das für die Authentifizierung mit dem Zielserver verwendet werden soll, wenn die UseSSO-Eigenschaft auf False festgelegt ist.

Der Standardwert ist eine leere Zeichenfolge.
OutboundBodyLocation Enumeration

- UseBodyElement : Verwenden Sie den BizTalk-Nachrichtentextteil, um den Inhalt des SOAP-Body-Elements für eine ausgehende Nachricht zu erstellen.
- UseTemplate : Verwenden Sie die in der OutboundXMLTemplate-Eigenschaft angegebene Vorlage, um den Inhalt des SOAP-Body-Elements für eine ausgehende Nachricht zu erstellen.

Weitere Informationen zur Verwendung der OutboundBodyLocation-Eigenschaft finden Sie unter Angeben des Nachrichtentexts für die WCF-Adapter.
Geben Sie die Datenauswahl für das SOAP-Body-Element ausgehender WCF-Nachrichten an.

Standardwert: UseBodyElement
OutboundXMLTemplate String

Weitere Informationen zur Verwendung der OutboundXMLTemplate-Eigenschaft finden Sie unter Angeben des Nachrichtentexts für die WCF-Adapter.
Geben Sie die XML-formatierte Vorlage für den Inhalt des SOAP-Body-Elements einer ausgehenden Nachricht an. Diese Eigenschaft ist erforderlich, wenn die OutboundBodyLocation-Eigenschaft auf UseTemplate festgelegt ist.

Der Standardwert ist eine leere Zeichenfolge.
InboundBodyLocation Enumeration

- UseBodyElement : Verwenden Sie den Inhalt des SOAP-Body-Elements einer eingehenden Nachricht, um den BizTalk-Nachrichtentextteil zu erstellen. Wenn das Body-Element mehr als ein untergeordnetes Element aufweist, wird nur das erste Element zum BizTalk-Nachrichtentextteil. Diese Eigenschaft ist nur für Ports vom Typ Antwort anfragen gültig.
- UseEnvelope : Erstellen Sie den BizTalk-Nachrichtentextteil aus dem gesamten SOAP-Umschlag einer eingehenden Nachricht.
- UseBodyPath : Verwenden Sie den Textpfadausdruck in der InboundBodyPathExpression-Eigenschaft , um den BizTalk-Nachrichtentextteil zu erstellen. Der Textpfadausdruck wird mit dem unmittelbar untergeordneten Element des SOAP-Body-Elements einer eingehenden Nachricht ausgewertet. Diese Eigenschaft ist nur für Ports vom Typ Antwort anfragen gültig.

Weitere Informationen zur Verwendung der InboundBodyLocation-Eigenschaft finden Sie unter Angeben des Nachrichtentexts für die WCF-Adapter.
Geben Sie die Datenauswahl für das SOAP-Body-Element eingehender WCF-Nachrichten an.

Standardwert: UseBodyElement
InboundBodyPathExpression String

Weitere Informationen zur Verwendung der InboundBodyPathExpression-Eigenschaft finden Sie unter WCF-Adaptereigenschaftenschema und -Eigenschaften.
Geben Sie den Textpfadausdruck an, um einen bestimmten Teil einer eingehenden Nachricht zu identifizieren, der zur Erstellung des Textteils einer BizTalk-Nachricht verwendet wird. Dieser Textpfadausdruck wird mit dem unmittelbar untergeordneten Element des SOAP-Textknotens einer eingehenden Nachricht ausgewertet. Wenn dieser Textpfadausdruck mehrere Knoten zurückgibt, wird nur der erste Knoten für den Textteil der BizTalk-Nachricht ausgewählt. Diese Eigenschaft ist erforderlich, wenn die InboundBodyLocation-Eigenschaft auf UseBodyPath festgelegt ist. Diese Eigenschaft ist nur für Ports vom Typ Antwort anfragen gültig.

Der Standardwert ist eine leere Zeichenfolge.
InboundNodeEncoding Enumeration

- XML
- Base64 : Base64-Codierung.
- Hex : Hexadezimalcodierung.
- Zeichenfolge – Textcodierung – UTF-8.
- XML : Die WCF-Adapter erstellen den BizTalk-Nachrichtentext mit der äußeren XML des Knotens, der durch den Textpfadausdruck in InboundBodyPathExpression ausgewählt wird.
Geben Sie den Codierungstyp an, den der WCF-NetTcp Sendeadapter verwendet, um den Knoten zu decodieren, der durch den in InboundBodyPathExpression angegebenen XPath identifiziert wird. Diese Eigenschaft ist erforderlich, wenn die InboundBodyLocation-Eigenschaft auf UseBodyPath festgelegt ist. Diese Eigenschaft ist nur für Ports vom Typ Antwort anfragen gültig.

Standardwert: XML
PropagateFaultMessage Boolean

- True : Leiten Sie die Nachricht, die bei der ausgehenden Verarbeitung fehlschlägt, an eine abonnierende Anwendung (z. B. einen anderen Empfangsport oder einen Orchestrierungszeitplan) weiter.
- False : Anhalten fehlerhafter Nachrichten und Generieren einer negativen Bestätigung (NACK).
Geben Sie an, ob Nachrichten, die bei der Ausgangsverarbeitung nicht verarbeitet wurden, weitergeleitet oder angehalten werden sollen.

Diese Eigenschaft ist nur für Ports vom Typ Antwort anfragen gültig.

Standardwert: True

Konfigurieren eines WCF-NetTcp-Sendeports über die BizTalk-Verwaltungskonsole

Sie können in der BizTalk-Verwaltungskonsole Adaptervariablen für den WCF-NetTcp-Sendeport festlegen. Wenn keine Eigenschaften für den Sendeport festgelegt sind, werden die Standardwerte für die Konfiguration des WCF-NetTcp-Sendeports verwendet (siehe die vorherige Tabelle).

Konfigurieren von Variablen für einen WCF-NetTcp Sendeport

  1. Erstellen Sie in der BizTalk-Verwaltungskonsole einen neuen Sendeport, oder doppelklicken Sie auf einen vorhandenen Sendeport, um diesen zu ändern. Weitere Informationen finden Sie unter Erstellen eines Sendeports. Konfigurieren Sie alle Sendeportoptionen, und geben Sie WCF-NetTcp für die Option Typ im Abschnitt Transport der Registerkarte Allgemein an.

  2. Klicken Sie auf der Registerkarte Allgemein im Abschnitt Transport auf die Schaltfläche Konfigurieren neben Typ.

  3. Konfigurieren Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften auf der Registerkarte Allgemein die Endpunktadresse, die Dienstidentität und den SOAPAction-Header für den WCF-NetTcp Sendeport. Weitere Informationen zur Registerkarte Allgemein im Dialogfeld WCF-NetTcp-Transporteigenschaften finden Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften, auf der Registerkarte Senden, allgemein in der Referenz zu Benutzeroberflächenanleitungen und Entwickler-API-Namespaces.

  4. Konfigurieren Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften auf der Registerkarte Bindung die Timeout- und Transaktionseigenschaften. Weitere Informationen zur Registerkarte Bindung im Dialogfeld WCF-NetTcp-Transporteigenschaften finden Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften, auf der Registerkarte Senden, Bindung in der Referenz zu Benutzeroberflächenanleitungen und Entwickler-API-Namespaces.

  5. Definieren Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften auf der Registerkarte Sicherheit die Sicherheitsfunktionen des WCF-NetTcp Sendeports. Weitere Informationen zur Registerkarte Sicherheit im Dialogfeld WCF-NetTcp-Transporteigenschaften finden Sie im Dialogfeld WCF-NetTcp Transport Properties (WCF-NetTcp-Transporteigenschaften) im Dialogfeld "Senden", auf der Registerkarte "Sicherheit" in der Referenz "Benutzeroberflächenleitfaden" und "Entwickler-API-Namespace".

  6. Geben Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften auf der Registerkarte Nachrichten die Datenauswahl für das SOAP Body-Element an. Weitere Informationen zur Registerkarte Nachrichten im Dialogfeld WCF-NetTcp-Transporteigenschaften finden Sie im Dialogfeld WCF-NetTcp Transport Properties (WCF-NetTcp-Transporteigenschaften) im Dialogfeld "Wcf-NetTcp Transport Properties" (WCF-NetTcp-Transporteigenschaften), auf der Registerkarte "Senden", "Nachrichten" in der Referenz zur Benutzeroberflächenanleitung und "Entwickler-API-Namespace".

Programmgesteuertes Konfigurieren eines WCF-NetTcp Sendeports

Sie können das folgende Format verwenden, um die Eigenschaften festzulegen:

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

Das folgende Codefragment veranschaulicht die Erstellung eines WCF-NetTcp-Sendeports:

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

Weitere Informationen

WCF Adapters-Eigenschaft Schema und EigenschaftenAngeben des Nachrichtentexts für die WCF-AdapterInstallieren von Zertifikaten für die WCF-AdapterKonfigurieren des WCF-NetTcp AdaptersKonfigurieren dynamischer Sendeports mithilfe von WCF-Adapterkontexteigenschaften