Konfigurieren eines WCF-NetTcp-Empfangsspeicherorts
Sie können einen WCF-NetTcp-Empfangsspeicherort programmgesteuert oder über die BizTalk-Verwaltungskonsole konfigurieren.
Konfigurationseigenschaften
Mithilfe des BizTalk-Explorer-Objektmodells können Sie Empfangsspeicherorte programmgesteuert erstellen und konfigurieren. Das BizTalk-Explorer-Objektmodell macht dieIReceiveLocation-Empfangsspeicherortkonfigurationsschnittstelle verfügbar, die über eine TransportTypeData-Lese-/Schreibeigenschaft verfügt. Diese Eigenschaft akzeptiert einen Konfigurationseigenschaftenbehälter für den jeweiligen WCF-NetTcp-Empfangsspeicherort in Form eines Name/Wert-Paars aus XML-Zeichenfolgen. Um diese Eigenschaft im BizTalk-Explorer-Objektmodell festzulegen, müssen Sie die InboundTransportLocation-Eigenschaft der IReceiveLocation-Schnittstelle festlegen.
Die TransportTypeData-Eigenschaft der IReceiveLocation-Schnittstelle muss nicht festgelegt werden. Ist die Eigenschaft nicht festgelegt, verwendet der WCF-NetTcp-Adapter die Standardwerte für die Konfiguration des WCF-NetTcp-Empfangsspeicherorts, 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 den WCF-NetTcp-Empfangsspeicherort festlegen können.
Eigenschaftenname | type | Beschreibung |
---|---|---|
Identität | XML-Blob Beispiel: <Identität> <userPrincipalName value="username@contoso.com" /> </Identität> |
Geben Sie die Identität des Diensts an, der von diesem Empfangsspeicherort bereitgestellt wird. Die Werte, die für die Identity-Eigenschaft angegeben werden können, unterscheiden sich je nach Sicherheitskonfiguration. Diese Einstellungen ermöglichen dem Client die Authentifizierung dieses Empfangsspeicherorts. 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. |
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 Empfangsport vom Typ "Anforderungsantwort" verwenden, gibt dieser Wert den Zeitraum an, in dem die gesamte Interaktion auch dann abgeschlossen sein muss, wenn vom Client eine umfangreiche Nachricht 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 | Gibt an, ob eine Nachricht mit dem Transaktionsfluss der Clients an die MessageBox-Datenbank gesendet wird. Wenn diese Eigenschaft auf True festgelegt ist, müssen die Clients Nachrichten mithilfe des Transaktionsprotokolls senden, das in der TransactionProtocol-Eigenschaft angegeben ist. Wenn die Clients Nachrichten außerhalb des Transaktionsbereichs übermitteln, wird von diesem Empfangsspeicherort eine Ausnahme an die Clients zurückgegeben, und es werden keine Nachrichten angehalten. Diese Option ist nur für unidirektionale Empfangsspeicherorte verfügbar. Wenn die Clients Nachrichten an Empfangsspeicherorte vom Typ „Anforderungsantwort“ in einem Transaktionskontext übermitteln, wird eine Ausnahme an die Clients zurückgegeben, und es werden keine Nachrichten angehalten. Standardwert: False |
TransactionProtocol | Enumeration - OleTransaction - WS-AtomicTransaction |
Gibt das Transaktionsprotokoll für diesen Empfangsspeicherort an. Standardwert: OleTransaction |
LeaseTimeout | System.TimeSpan | Gibt die maximale Lebensdauer einer aktiven Verbindung in einem Pool an. Nach Ablauf der angegebenen Zeit wird die Verbindung geschlossen, nachdem die aktuelle Anforderung gewartet wurde. Der WCF-NetTcp-Adapter nutzt die NetTcpBinding-Klasse , um mit einem Endpunkt zu kommunizieren. Wenn Sie NetTcpBinding in Szenarien mit Lastenausgleich verwenden, sollten Sie das Standardmäßige Leasetimeout reduzieren. Weitere Informationen zum Lastenausgleich bei Verwendung von NetTcpBinding finden Sie im entsprechenden Thema unter Siehe auch. Standardwert: 00:05:00 |
MaxConcurrentCalls | Integer | Gibt die Anzahl gleichzeitiger Aufrufe für eine einzelne Dienstinstanz an. Aufrufe, die diese Grenze überschreiten, werden in die Warteschlange eingereiht. Der Bereich dieser Eigenschaft liegt zwischen 1 und Int32.MaxValue. Standardwert: 200 |
Securitymode | Enumeration - Keine - Nachricht - Transport - Transportwithmessagecredential Weitere Informationen zu den Membernamen für die SecurityMode-Eigenschaft finden Sie unter Der Eigenschaft "Sicherheitsmodus" im Dialogfeld WCF-NetTcp-Transporteigenschaften, auf der Registerkarte Empfangen, 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 Empfangen, Sicherheit in der Referenz zu UI-Anleitung und API-Namespace für Entwickler. |
Gibt den Typ der Anmeldeinformationen für die Clientauthentifizierung an. Standardwert: Windows |
TransportProtectionLevel | Enumeration - Keine: Kein Schutz. - Zeichen: Nachrichten sind signiert. - EncryptAndSign: Nachrichten werden verschlüsselt und signiert. |
Definiert die Sicherheit auf TCP-Transportebene. 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 Nachrichtenclientanmeldeinformationstyp im Dialogfeld WCF-NetTcp-Transporteigenschaften, Auf der Registerkarte Empfangen, Sicherheit in der Referenz zu Benutzeroberflächenanleitungen und Api-Namespace für 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 AlgorithmSuite-Eigenschaft im Dialogfeld WCF-NetTcp-Transporteigenschaften, Auf der Registerkarte Empfangen, Sicherheit in der Api-Anleitung und api-Namespacereferenz für Entwickler. |
Legt Nachrichtenverschlüsselung und Schlüsselverpackungsalgorithmen fest. Diese Algorithmen sind den Algorithmen in der Spezifikation der Sicherheitsrichtliniensprache (WS-SecurityPolicy) zugeordnet. Standardwert: Basic256 |
ServiceCertificate | String | Gibt den Fingerabdruck des X.509-Zertifikats für diesen Empfangsspeicherort an, mit dem die Clients den Dienst authentifizieren. Das für diese Eigenschaft zu verwendende Zertifikat muss im Speicher "Mein Speicher" am Speicherort "Aktueller Benutzer " installiert werden. Hinweis: Sie müssen das Dienstzertifikat am Aktuellen Benutzerspeicherort des Benutzerkontos für den Empfangshandler installieren, der diesen Empfangsspeicherort hosten. Der Standardwert ist eine leere Zeichenfolge. |
UseSSO | Boolean | Geben Sie an, ob Clientanmeldeinformationen für das Ausstellen eines SSO-Tickets mithilfe von Einmaliges Anmelden für Unternehmen (Single Sign-On, SSO) abgerufen werden sollen. Weitere Informationen zu den Sicherheitskonfigurationen, die einmaliges Anmelden unterstützen, finden Sie im Abschnitt "Enterprise Single Sign-On Supportability for the WCF-NetTcp Receive Adapter" im WCF-NetTcp-Dialogfeld transport properties( Wcf-NetTcp Transport Properties Dialog Box, Registerkarte Receive, Security ) in der Referenz zum API-Namespace für Benutzeroberflächen und Entwickler. |
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. - 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 anhand des unmittelbar untergeordneten Elements 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 Adapters Property Schema and Properties.For more information about how to use the InboundBodyPathExpression property, see WCF Adapters Property Schema and Properties. |
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 anhand des unmittelbar untergeordneten Elements 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. Der Standardwert ist eine leere Zeichenfolge. |
InboundNodeEncoding | Enumeration - Base64 – Base64-Codierung. - Hexadezimalcodierung : Hexadezimalcodierung. - Zeichenfolge – Textcodierung – UTF-8. - XML : Die WCF-Adapter erstellen den BizTalk-Nachrichtentext mit dem äußeren XML des Knotens, der durch den Textpfadausdruck in InboundBodyPathExpression ausgewählt wurde. |
Geben Sie den Codierungstyp an, den der WCF-NetTcp Empfangsadapter verwendet, um den Knoten zu decodieren, der durch den in InboundBodyPathExpression angegebenen Textpfadausdruck identifiziert wird. Diese Eigenschaft ist erforderlich, wenn die InboundBodyLocation-Eigenschaft auf UseBodyPath festgelegt ist. Standardwert: XML |
OutboundBodyLocation | Enumeration - UseBodyElement : Verwenden Sie den BizTalk-Nachrichtentextteil, um den Inhalt des SOAP-Body-Elements für eine ausgehende Antwortnachricht zu erstellen. - UseTemplate : Verwenden Sie die in der OutboundXMLTemplate-Eigenschaft bereitgestellte Vorlage, um den Inhalt des SOAP-Body-Elements für eine ausgehende Antwortnachricht 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. Diese Eigenschaft gilt nur für Empfangsspeicherorte vom Typ "Anforderungsantwort". 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 Antwortnachricht an. Diese Eigenschaft ist erforderlich, wenn die OutboundBodyLocation-Eigenschaft auf UseTemplate festgelegt ist. Diese Eigenschaft gilt nur für Empfangsspeicherorte vom Typ "Anforderungsantwort". Der Standardwert ist eine leere Zeichenfolge. |
SuspendMessageOnFailure | Boolean | Gibt an, ob Anforderungsnachrichten angehalten werden sollen, bei denen bei der Eingangsverarbeitung ein Fehler in der Empfangspipeline oder beim Weiterleiten aufgetreten ist. Standardwert: True |
Includeexceptiondetailinfaults | Boolean | Gibt an, ob Informationen zu verwalteten Ausnahmen in die Details der SOAP-Fehler aufgenommen werden sollen, die zum Unterstützen des Debuggens an den Client zurückgegeben werden. Standardwert: False |
Konfigurieren eines WCF-NetTcp Empfangsspeicherorts mit der BizTalk-Verwaltungskonsole
Sie können die Empfangsspeicherortvariablen für den WCF-NetTcp-Adapter in der BizTalk Server-Verwaltungskonsole festlegen. Werden Eigenschaften nicht im Empfangsspeicherort festgelegt, werden die in der BizTalk-Verwaltungskonsole festgelegten Standardwerte des Empfangshandlers verwendet.
Hinweis
Bevor Sie die folgenden Schritte ausführen, müssen Sie bereits einen Empfangsport hinzugefügt haben. Weitere Informationen finden Sie unter Erstellen eines Empfangsports.
Konfigurieren von Variablen für einen WCF-NetTcp Empfangsspeicherort
Erweitern Sie in der BizTalk-Verwaltungskonsole BizTalk Server 2009-Verwaltung, erweitern Sie Gruppe "BizTalk", erweitern Sie Anwendungen, und erweitern Sie dann die Anwendung, in der Sie einen Empfangsspeicherort erstellen möchten.
Klicken Sie in der BizTalk-Verwaltungskonsole im linken Bereich auf den Knoten Empfangsport . Klicken Sie anschließend im rechten Bereich mit der rechten Maustaste auf den Empfangsport, der einem vorhandenen Empfangsspeicherort zugeordnet ist oder den Sie einem neuen Empfangsspeicherort zuordnen möchten, und klicken Sie dann auf Eigenschaften.
Wählen Sie im Dialogfeld Eigenschaften des Empfangsports im linken Bereich Empfangsspeicherorte aus, doppelklicken Sie dann im rechten Bereich auf einen vorhandenen Empfangsspeicherort, oder klicken Sie auf Neu, um einen neuen Empfangsspeicherort zu erstellen.
Wählen Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts im Abschnitt Transport neben Typ die Option WCF-NetTcp aus der Dropdownliste aus, und klicken Sie dann auf Konfigurieren.
Konfigurieren Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften auf der Registerkarte Allgemein die Endpunktadresse und die Dienstidentität für den WCF-NetTcp Empfangsspeicherort. Weitere Informationen zur Registerkarte Allgemein im Dialogfeld WCF-NetTcp-Transporteigenschaften finden Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften, Registerkarte Empfangen, Allgemein in der Api-Api-Namespacereferenz für Benutzeroberflächenanleitungen und Entwickler.
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 "Empfangen", "Bindung " in der Api-Anleitung und der API-Namespacereferenz für Entwickler.
Definieren Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften auf der Registerkarte Sicherheit die Sicherheitsfunktionen des WCF-NetTcp Empfangsspeicherorts. Weitere Informationen zur Registerkarte Sicherheit im Dialogfeld WCF-NetTcp-Transporteigenschaften finden Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften, Auf der Registerkarte Empfangen, Sicherheit in der Referenz zu Benutzeroberflächenanleitungen und Entwickler-API-Namespaces.
Geben Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften auf der Registerkarte Nachrichten die Datenauswahl für das SOAP-Body-Element an. Weitere Informationen zur Registerkarte Meldungen im Dialogfeld WCF-NetTcp-Transporteigenschaften finden Sie im Dialogfeld WCF-NetTcp-Transporteigenschaften, Auf der Registerkarte Empfangen, Nachrichten in der Api-Namespacereferenz für Benutzeroberflächenanleitungen und Entwickler-API.
Programmgesteuertes Konfigurieren eines WCF-NetTcp Empfangsspeicherorts
Sie können das folgende Format verwenden, um die Eigenschaften festzulegen:
<CustomProps>
<InboundBodyPathExpression vt="8" />
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<UseSSO vt="11">0</UseSSO>
<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">Message</SecurityMode>
<TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>
<EnableTransaction vt="11">0</EnableTransaction>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
<MaxConcurrentCalls vt="3">16</MaxConcurrentCalls>
<ServiceCertificate vt="8" />
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
Das folgende Codefragment veranschaulicht die Erstellung eines WCF-NetTcp-Empfangsspeicherorts:
// Use BizTalk Explorer object model to create new WCF-NetTcp receive location
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
<InboundBodyLocation vt=""8"">UseBodyElement</InboundBodyLocation>
<UseSSO vt=""11"">0</UseSSO>
<Identity vt=""8"">
<identity>
<userPrincipalName value=""username@contoso.com"" />
</identity>
</Identity>
</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 one-way receive port
IReceivePort receivePort = application.AddNewReceivePort(false);
receivePort.Name = "SampleReceivePort";
// Add a new one-way receive location
IReceiveLocation receiveLocation = receivePort.AddNewReceiveLocation();
receiveLocation.Name = "SampleReceiveLocation";
// Find a receive handler for WCF-NetTcp
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
if("WCF-NetTcp" == explorer.ReceiveHandlers[i].TransportType.Name)
break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "net.tcp://mycomputer/samplepath";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-NetTcp"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();
Weitere Informationen
Veröffentlichen von Dienstmetadaten für die WCF-EmpfangsadapterVerwalten von BizTalk-Hosts und HostinstanzenÄndern von Dienstkonten und KennwörternInstallieren von Zertifikaten für die WCF-AdapterAngeben des Nachrichtentexts für den WCF-Adapter-LastenausgleichKonfigurieren des WCF-NetTcp-Adapters