Konfigurieren eines WCF-NetMsmq-Empfangsspeicherorts
Sie können einen WCF-NetMsmq-Empfangsspeicherort entweder 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-NetMsmq-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. Wenn die Eigenschaft nicht festgelegt wurde, verwendet der WCF-NetMsmq-Adapter die in der folgenden Tabelle aufgeführten Standardwerte für die Konfiguration des WCF-NetMsmq-Empfangsspeicherorts.
In der folgenden Tabelle sind die Konfigurationseigenschaften aufgelistet, die Sie im BizTalk-Explorer-Objektmodell für den WCF-NetMsmq-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. 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 |
EnableTransaction | Boolean | Geben Sie den Typ der Nachrichtenwarteschlange an: Transaktions- oder andere Warteschlange. Wenn diese Eigenschaft aktiviert ist, wird jede Nachricht nur einmal übermittelt und bei Übermittlungsfehlern der Absender benachrichtigt. Um Nachrichten über Transaktionssendeports zu senden, müssen sowohl die permanenten als auch die exaktOnce-Bindungselemente des Clients auf True festgelegt werden. Wenn diese Eigenschaft gelöscht wird, werden Nachrichten ohne Übermittlungssicherung übertragen. Hinweis: Wenn Sie eine Transaktionswarteschlange unter diesem Empfangsspeicherort verwenden, muss diese Eigenschaft ausgewählt werden. Standardwert: False |
OrderedProcessing | Boolean | Geben Sie an, ob Nachrichten seriell verarbeitet werden sollen. Wenn diese Eigenschaft ausgewählt ist, kann dieser Empfangsspeicherort die geordnete Nachrichtenübermittlung aufnehmen, wenn er in Verbindung mit einem BizTalk-Messaging- oder Orchestrierungs-Sendeport verwendet wird, für den die Option "Bestellte Übermittlung " auf True festgelegt ist. Sie können dies nur auswählen, wenn die EnableTransaction-Eigenschaft auf True festgelegt ist.Weitere Informationen zur Option "Bestellte Zustellung " finden Sie in den entsprechenden Themen unter Siehe auch. Wenn diese Eigenschaft auf True festgelegt ist, optimiert der WCF-NetMsmq Empfangsspeicherort die Ressourcennutzung bei der Verarbeitung großer Nachrichten, indem der Adapter singlethreaded wird. 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 reicht von 0 bis Int32.MaxValue. Standardwert: 200 |
Securitymode | Enumeration - Keine - Nachricht - Transport - Beide Weitere Informationen zu den Membernamen für die SecurityMode-Eigenschaft finden Sie unter der Eigenschaft Sicherheitsmodus im Dialogfeld WCF-NetMsmq-Transporteigenschaften, Registerkarte Empfangen, Sicherheit in der Api-Namespacereferenz für Benutzeroberflächenanleitungen und Entwickler-API.For more information about the member names for the SecurityMode property, the Security mode property in the WCF-NetMsmq Transport Properties Dialog Box, Tab, Security tab in the UI guidance and developers API namespace reference. |
Gibt den verwendeten Sicherheitstyp an. Standardwert: Transport |
Msmqauthenticationmode | Enumeration - Keine - Windowsdomain - Zertifikat Weitere Informationen zu den Membernamen für die MsmqAuthenticationMode-Eigenschaft finden Sie in der MSMQ-Authentifizierungsmodus-Eigenschaft im Dialogfeld WCF-NetMsmq-Transporteigenschaften, Registerkarte Empfangen, Sicherheit in der Referenz zum API-Namespace für Benutzeroberflächenanleitungen und Entwickler-API. |
Geben Sie an, wie die Nachricht durch den MSMQ-Transport authentifiziert werden muss. Standardwert: WindowsDomain |
Msmqprotectionlevel | Enumeration - Keine: Kein Schutz. - Sign: Nachrichten sind signiert. - EncryptAndSign: Nachrichten werden verschlüsselt und signiert. Um diese Schutzebene verwenden zu können, müssen Sie die Active Directory-Integration für MSMQ aktivieren. |
Legen Sie den Typ der Nachrichtensicherheit auf Ebene des MSMQ-Transports fest. Durch die Verschlüsselung wird Nachrichtenintegrität bereitgestellt, während durch Signatur und Verschlüsselung sowohl die Nachrichtenintegrität als auch die Nachweisbarkeit sichergestellt wird. Standardwert: Sign |
MsmqSecureHashAlgorithm | Enumeration - MD5 - SHA1 - SHA25 - SHA512 |
Legen Sie den Hashalgorithmus fest, der zum Berechnen der Nachrichtenübersicht verwendet wird. Diese Eigenschaft ist nicht verfügbar, wenn die MsmqProtectionLevel-Eigenschaft auf None festgelegt ist. Standardwert: SHA1 |
MsmqEncryptionAlgorithm | Enumeration - RC4Stream - AES |
Legen Sie den Algorithmus fest, der beim Übertragen von Nachrichten zwischen Nachrichtenwarteschlangen-Managern für die Nachrichtenverschlüsselung im Netzwerk verwendet wird. Diese Eigenschaft ist nur verfügbar, wenn die MsmqProtectionLevel-Eigenschaft auf EncryptAndSign festgelegt ist. Standardwert: RC4Stream |
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-NetMsmq-Transporteigenschaften, Registerkarte Empfangen, Sicherheit in der Referenz zum API-Namespace für Benutzeroberflächenanleitungen und Entwickler-API.For more information about the Member names for the Message Client credential type property in the WCF-NetMsmq Transport Properties Dialog Box, Registerkarte Security in the UI guidance and developers API namespace reference. |
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 in der Algorithm Suite-Eigenschaft im Dialogfeld WCF-NetMsmq-Transporteigenschaften, Auf der Registerkarte Empfangen, Sicherheit in der Api-Anleitung und der API-Namespacereferenz für Entwickler.For more information about the AlgorithmSuite property, the Algorithm suite property in the WCF-NetMsmq Transport Properties Dialog Box, Tab, Security tab in the UI guidance and developers API namespace reference. |
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. |
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-NetMsmq 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 |
DisableLocationOnFailure | Boolean | Gibt an, ob der Empfangsspeicherort, an dem bei der Eingangsverarbeitung ein Fehler in der Empfangspipeline oder beim Weiterleiten aufgetreten ist, deaktiviert werden soll. Standardwert: False |
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-NetMsmq Empfangsspeicherorts mit der BizTalk-Verwaltungskonsole
Sie können die Empfangsspeicherortvariablen für den WCF-NetMsmq-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.
Hinweis
Die Bindungskonfigurationen von WCF-Clients und WCF-NetMsmq-Empfangsspeicherorten müssen übereinstimmen. Wenn sie nicht übereinstimmen, können eingehende Nachrichten in den WCF-NetMsmq-Empfangsspeicherorten verloren gehen.
Konfigurieren von Variablen für einen WCF-NetMsmq Empfangsspeicherort
Erweitern Sie in der BizTalk-Verwaltungskonsole BizTalk ServerAdministration, 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 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-NetMsmq aus der Dropdownliste aus, und klicken Sie dann auf Konfigurieren.
Konfigurieren Sie im Dialogfeld WCF-NetMsmq-Transporteigenschaften auf der Registerkarte Allgemein die Endpunktadresse und die Dienstidentität für den WCF-NetMsmq Empfangsspeicherort. Weitere Informationen zur Registerkarte Allgemein im Dialogfeld WCF-NetMsmq-Transporteigenschaften finden Sie im Dialogfeld WCF-NetMsmq-Transporteigenschaften, Registerkarte Empfangen, Allgemein in der Api-Namespacereferenz für Benutzeroberflächenanleitungen und Entwickler-API.
Konfigurieren Sie im Dialogfeld WCF-NetMsmq-Transporteigenschaften auf der Registerkarte Bindung die Timeout- und Transaktionseigenschaften. Weitere Informationen zur Registerkarte Bindung im Dialogfeld WCF-NetMsmq-Transporteigenschaften finden Sie im Dialogfeld WCF-NetMsmq-Transporteigenschaften, auf der Registerkarte "Empfangen", "Bindung " in der Api-Anleitung und der API-Namespacereferenz für Entwickler.
Definieren Sie im Dialogfeld WCF-NetMsmq-Transporteigenschaften auf der Registerkarte Sicherheit die Sicherheitsfunktionen des WCF-NetMsmq Empfangsspeicherorts. Weitere Informationen zur Registerkarte Sicherheit im Dialogfeld WCF-NetMsmq-Transporteigenschaften finden Sie im Dialogfeld WCF-NetMsmq-Transporteigenschaften, Auf der Registerkarte Empfangen, Sicherheit in der Referenz zum API-Namespace für Benutzeroberflächen und Entwickler.
Geben Sie im Dialogfeld WCF-NetMsmq-Transporteigenschaften auf der Registerkarte Nachrichten die Datenauswahl für das SOAP-Body-Element an. Weitere Informationen zur Registerkarte Meldungen im Dialogfeld WCF-NetMsmq-Transporteigenschaften finden Sie im Dialogfeld WCF-NetMsmq-Transporteigenschaften, Auf der Registerkarte Empfangen, Meldungen in der Referenz zum API-Namespace für Benutzeroberflächenanleitungen und Entwickler-API.
Programmgesteuertes Konfigurieren eines WCF-NetMsmq Empfangsspeicherorts
Sie können das folgende Format verwenden, um die Eigenschaften festzulegen:
<CustomProps>
<ServiceCertificate vt="8" />
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<InboundBodyPathExpression vt="8" />
<MessageClientCredentialType vt="8">Windows</MessageClientCredentialType>
<SendTimeout vt="8">00:01:00</SendTimeout>
<IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
<OpenTimeout vt="8">00:01:00</OpenTimeout>
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<MaxConcurrentCalls vt="3">16</MaxConcurrentCalls>
<SecurityMode vt="8">Transport</SecurityMode>
<OrderedProcessing vt="11">0</OrderedProcessing>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<MsmqEncryptionAlgorithm vt="8">RC4Stream</MsmqEncryptionAlgorithm>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<MsmqProtectionLevel vt="8">Sign</MsmqProtectionLevel>
<DisableLocationOnFailure vt="11">0</DisableLocationOnFailure>
<MsmqSecureHashAlgorithm vt="8">Sha1</MsmqSecureHashAlgorithm>
<SuspendMessageOnFailure vt="11">-1</SuspendMessageOnFailure>
<EnableTransaction vt="11">-1</EnableTransaction>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<MsmqAuthenticationMode vt="8">WindowsDomain</MsmqAuthenticationMode>
</CustomProps>
Das folgende Codefragment veranschaulicht die Erstellung eines WCF-NetMsmq-Empfangsspeicherorts:
// Use BizTalk Explorer object model to create new WCF-NetMsmq 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-NetMsmq
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
if("WCF-NetMsmq" == explorer.ReceiveHandlers[i].TransportType.Name)
break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "net.msmq://mycomputer/private/sampleQueue";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-NetMsmq"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();
Weitere Informationen
Veröffentlichen von Dienstmetadaten für die WCF-EmpfangsadapterVerwalten von BizTalk-Hosts und HostinstanzenSo ändern Sie Dienstkonten und KennwörterInstallieren von Zertifikaten für die WCF-AdapterAngeben des Nachrichtentexts für die WCF-AdapterKonfigurieren des WCF-NetMsmq AdaptersGeordnete Übermittlung von Nachrichtensenden und abrufen von Nachrichten innerhalb einer Transaktionsnachrichtenwarteschlange und öffentlichen und privatenActive Directory-Warteschlangen