Konfigurieren eines WCF-WSHttp-Empfangsspeicherorts
Sie können einen WCF-WSHttp-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-WSHttp-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-WSHttp-Adapter die Standardwerte für die Konfiguration des WCF-WSHttp-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-WSHttp-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. Standardwert: 65536 |
MessageEncoding | Enumeration - Text : Verwenden Sie einen Textnachrichtenencoder. - Mtom : Verwenden Sie einen MTOM-Encoder (Message Transmission Optimization Mechanism 1.0). |
Hier geben Sie den Encoder an, der zum Codieren der SOAP-Nachricht verwendet werden soll. Standardwert: Text |
TextCodierung | Enumeration - unicodeFFF : Unicode BigEndian-Codierung. - utf-16 – 16-Bit-Codierung. - utf-8 – 8-Bit-Codierung |
Geben Sie die Zeichensatzcodierung an, die zum Senden von Nachrichten in der Bindung verwendet werden soll, wenn die MessageEncoding-Eigenschaft auf Text festgelegt ist. Standardwert: utf-8 |
EnableTransaction | Boolean | Gibt an, ob eine Nachricht mit dem Transaktionsfluss der Clients an die MessageBox-Datenbank gesendet wird. Wenn diese Eigenschaft lautet True , müssen die Clients Nachrichten mit dem WS-AtomicTransaction-Protokoll übermitteln. 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 |
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 in der Eigenschaft Sicherheitsmodus im Dialogfeld WCF-WSHttp Transport Properties, auf der Registerkarte Empfangen, Sicherheit in der Referenz zu Benutzeroberflächenleitfaden und Entwickler-API-Namespaces. |
Gibt den verwendeten Sicherheitstyp an. Standardwert: Nachricht |
TransportClientCredentialType | Enumeration - Keine - Basic - Ntlm - Windows - Zertifikat Weitere Informationen zu den Membernamen für die TransportClientCredentialType-Eigenschaft finden Sie in der Eigenschaft Transportclientanmeldeinformationstyp im Dialogfeld WCF-WSHttp TransportEigenschaften, Auf der Registerkarte Empfangen, Sicherheit in der Referenz zu UI-Anleitungen und Entwickler-API-Namespace. |
Gibt den Typ der Anmeldeinformationen für die Clientauthentifizierung an. Standardwert: Windows |
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-WSHttp Transport Properties, Auf der Registerkarte Empfangen, Sicherheit in der Referenz zu UI-Anleitung 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-WSHttp Transport Properties( WCF-WSHttp Transport Properties), auf der Registerkarte Empfangen, 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 |
Negotiateservicecredential | Boolean | Geben Sie an, ob die Dienstanmeldeinformationen auf diesem Client außer der Reihe bereitgestellt oder vom Dienst bei einem Aushandlungsvorgang an diesen Client übermittelt werden. Eine solche Verhandlung ist Vorläufer zum üblichen Nachrichtenaustausch. Wenn die MessageClientCredentialType-Eigenschaftkeine, Benutzername oder Zertifikat ist, bedeutet das Festlegen dieser Eigenschaft auf False , dass das Dienstzertifikat out-of-band auf dem Client verfügbar ist und dass der Client das Dienstzertifikat angeben muss. Dieser Modus ist mit SOAP-Stapeln interoperabel, die WS-Trust und WS-SecureConversation implementieren. Wenn die MessageClientCredentialType-Eigenschaft auf Windows festgelegt ist, gibt das Festlegen dieser Eigenschaft auf False die Kerberos-basierte Authentifizierung an. Dies bedeutet, dass Client und Dienst Teil der gleichen Kerberos-Domäne sein müssen. Dieser Modus ist mit SOAP-Stapeln interoperabel, die das Kerberos-Tokenprofil (gemäß der Definition in OASIS WSS TC) sowie WS-Trust und WS-SecureConversation implementieren. Wenn diese Eigenschaft True ist, verursacht sie eine .NET SOAP-Aushandlung, die SPNego-Austausch über SOAP-Nachrichten tunnelt. Standardwert: True |
Establishsecuritycontext | Boolean | Legt fest, ob der Sicherheitskanal eine sichere Sitzung aufbaut. In einer sicheren Sitzung wird vor dem Austausch der Anwendungsnachrichten ein Sicherheitskontexttoken erstellt. Standardwert: True |
ServiceCertificate | String | Gibt den Fingerabdruck des X.509-Zertifikats für diesen Empfangsspeicherort an, mit dem die Clients den Dienst authentifizieren. Das Zertifikat, das für diese Eigenschaft verwendet werden soll, muss im Speicher "Mein " am Speicherort "Aktueller Benutzer" installiert werden. Hinweis: Sie müssen das Dienstzertifikat im Aktuellen Benutzerspeicherort des Benutzerkontos für den Empfangshandler installieren, der diesen Empfangsspeicherort hostt. 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-WSHttp Receive Adapter" im WCF-WSHttp Transport Properties Dialog Box, Registerkarte Receive, Security in the UI Guidance and Developers API Namespace Reference. |
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 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. Der Standardwert ist eine leere Zeichenfolge. |
InboundNodeEncoding | Enumeration - 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-WSHttp 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 angegebene 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-WSHttp Empfangsspeicherorts mit der BizTalk-Verwaltungskonsole
Sie können die Adaptervariablen für den WCF-WSHttp-Empfangsspeicherort 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 Verfahren 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-WSHttp Empfangsspeicherort
Erweitern Sie in der BizTalk-Verwaltungskonsole BizTalk Server-Verwaltung, BizTalk-Gruppe, Anwendungen und 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 Die Option 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-WSHttp aus der Dropdownliste aus, und klicken Sie dann auf Konfigurieren.
Konfigurieren Sie im Dialogfeld WCF-WSHttp Transport Properties auf der Registerkarte Allgemein die Endpunktadresse und die Dienstidentität für den WCF-WSHttp Empfangsspeicherort. Weitere Informationen zur Registerkarte Allgemein im Dialogfeld WCF-WSHttp-Transporteigenschaften finden Sie im Dialogfeld WCF-WSHttp Transport Properties (WCF-WSHttp Transport Properties Dialogfeld, Registerkarte Empfangen, Allgemein ) in der Referenz zur Benutzeroberflächenleitfaden und Entwickler-API-Namespacereferenz.
Konfigurieren Sie im Dialogfeld WCF-WSHttp-Transporteigenschaften auf der Registerkarte Bindung die Timeout-, Codierungs- und Transaktionseigenschaften. Weitere Informationen zur Registerkarte Bindung im Dialogfeld WCF-WSHttp-Transporteigenschaften finden Sie im Dialogfeld WCF-WSHttp Transport Properties ( WCF-WSHttp Transport Properties) unter der Registerkarte Empfangen, Bindung in der Referenz zu benutzeroberflächenbasierten API-Namespaces.
Definieren Sie im Dialogfeld WCF-WSHttp-Transporteigenschaften auf der Registerkarte Sicherheit die Sicherheitsfunktionen des WCF-WSHttp Empfangsspeicherorts. Weitere Informationen zur Registerkarte Sicherheit im Dialogfeld WCF-WSHttp-Transporteigenschaften finden Sie im Dialogfeld WCF-WSHttp Transport Properties (WCF-WSHttp Transport Properties), auf der Registerkarte Empfangen, Sicherheit in der Referenz zu Benutzeroberflächenleitfaden und Entwickler-API-Namespace.
Geben Sie im Dialogfeld WCF-WSHttp-Transporteigenschaften auf der Registerkarte Nachrichten die Datenauswahl für das SOAP Body-Element an. Weitere Informationen zur Registerkarte Nachrichten im Dialogfeld WCF-WSHttp-Transporteigenschaften finden Sie im Dialogfeld WCF-WSHttp Transport Properties (WCF-WSHttp Transport Properties Dialogfeld), auf der Registerkarte Empfangen, Nachrichten in der Referenz zur Benutzeroberflächenanleitung und im API-Namespace für Entwickler.
Programmgesteuertes Konfigurieren eines WCF-WSHttp 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>
<NegotiateServiceCredential vt="11">-1</NegotiateServiceCredential>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<TextEncoding vt="8">utf-8</TextEncoding>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>
<EnableTransaction vt="11">0</EnableTransaction>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<EstablishSecurityContext vt="11">-1</EstablishSecurityContext>
<IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
<MaxConcurrentCalls vt="3">16</MaxConcurrentCalls>
<ServiceCertificate vt="8" />
<MessageEncoding vt="8">Text</MessageEncoding>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
Das folgende Codefragment veranschaulicht die Erstellung eines WCF-WSHttp-Empfangsspeicherorts:
// Use BizTalk Explorer object model to create new WCF-WSHttp 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 = "SampleBizTalkApplication1001";
// 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-WSHttp
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
if("WCF-WSHttp" == explorer.ReceiveHandlers[i].TransportType.Name)
break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "/samplepath/sampleservice.svc";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-WSHttp"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();
Weitere Informationen
Veröffentlichen von WCF-Diensten mit den isolierten WCF-Empfangsadaptern
Konfigurieren von IIS für isolierte WCF-Empfangsadapter
Verwalten von BizTalk-Hosts und -Hostinstanzen
Ändern von Dienstkonten und Kennwörtern
Installieren von Zertifikaten für die WCF-Adapter
Angeben des Nachrichtentexts für die WCF-Adapter
Konfigurieren des WCF-WSHttp-Adapters