<<msmqIntegrationBinding>>

Definiert eine Bindung, die eine Warteschlangenunterstützung bereitstellt, indem Nachrichten über MSMQ weitergeleitet werden.

Schemahierarchie

<<system.serviceModel>>
  <bindings>
    <<msmqIntegrationBinding>>

Syntax

<msmqIntegrationBinding>
   <binding 
       closeTimeout="TimeSpan" 
       customDeadLetterQueue="Uri"
       deadLetterQueue="Uri"
       durable="Boolean"
       exactlyOnce="Boolean" 
       maxReceivedMessageSize"Integer"
       maxRetryCycles="Integer" 
       name="string" 
       openTimeout="TimeSpan"        receiveContextEnabled=”Boolean”
       receiveErrorHandling="Drop/Fault/Move/Reject"
       receiveTimeout="TimeSpan" 
       receiveRetryCount="Integer"
       retryCycleDelay="TimeSpan"  
       sendTimeout="TimeSpan" 
       serializationFormat="XML/Binary/ActiveX/ByteArray/Stream">
       timeToLive="TimeSpan"  
       useMsmqTracing="Boolean
       useSourceJournal="Boolean"
   </binding>
</msmqIntegrationBinding> 

Attribute und Elemente

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.

Attribute

Attribut Beschreibung

closeTimeout

Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Schließvorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.

customDeadLetterQueue

Ein URI, der den Speicherort der Warteschlange für unzustellbare Nachrichten für jede Anwendung enthält, in der abgelaufene oder nicht übertragene oder nicht zugestellte Nachrichten platziert werden.

Die Warteschlange für unzustellbare Nachrichten ist eine Warteschlange für abgelaufene Nachrichten, die nicht zugestellt werden konnten. Diese Warteschlange befindet sich im Warteschlangen-Manager der sendenden Anwendung.

Der URI, der von CustomDeadLetterQueue angegeben wird, muss das net.msmq-Schema verwenden.

deadLetterQueue

Ein DeadLetterQueue-Wert, der den ggf. zu verwendenden Typ der Warteschlange für unzustellbare Nachrichten angibt.

Die Warteschlange für unzustellbare Nachrichten ist der Speicherort für Nachrichten, die nicht zugestellt werden konnten.

Bei Nachrichten, die exactlyOnce-Zusicherung erfordern (das heißt, das exactlyOnce-Attribut ist auf true festgelegt), ist dieses Attribut standardmäßig die systemweite Transaktionswarteschlange für unzustellbare Nachrichten in MSMQ.

Für Nachrichten, die keine Zusicherung erfordern, ist dieses Attribut standardmäßig NULL.

durable

Ruft einen booleschen Wert ab, der angibt, ob die Nachricht in der Warteschlange dauerhaft oder flüchtig ist. Eine dauerhafte Nachricht überlebt einen Absturz des Warteschlangen-Managers, was für eine flüchtige Nachricht nicht gilt. Flüchtige Nachrichten sind nützlich, wenn Anwendungen eine geringere Latenz erfordern und eine geringe Anzahl verlorener Nachrichten tolerieren können. Wenn für das exactlyOnce-Attribut true festgelegt wird, müssen die Nachrichten dauerhaft sein. Der Standardwert ist true.

exactlyOnce

Ein boolescher Wert, der angibt, ob jede Nachricht nur einmal zugestellt wird. Der Absender wird dann über den Zustellfehler benachrichtigt. Wenn der durable-Wert false ist, wird dieses Attribut ignoriert, und es werden Nachrichten ohne Zustellungszusicherung übertragen. Der Standardwert ist true. Weitere Informationen finden Sie unter ExactlyOnce.

maxReceivedMessageSize

Eine positive ganze Zahl, die die maximale Nachrichtengröße in Byte einschließlich Header angibt, die von dieser Bindung verarbeitet wird. Der Absender einer Nachricht, die diese Grenze überschreitet, erhält einen SOAP-Fehler. Der Empfänger verwirft die Nachricht und erstellt einen Eintrag des Ereignisses im Ablaufverfolgungsprotokoll. Der Standardwert beträgt 65536. Auf diese Weise sollen Denial-of-Service-Angriffe (DoS) reduziert werden.

MaxRetryCycles

Eine ganze Zahl, die die Anzahl der Wiederholungszyklen für die Funktion zur Erkennung nicht verarbeitbarer Nachrichten angibt. Eine Nachricht gilt als nicht verarbeitbare Nachricht, wenn alle erneuten Zustellversuche fehlgeschlagen sind. Der Standardwert beträgt 2. Weitere Informationen finden Sie unter MaxRetryCycles.

name

Eine Zeichenfolge, die den Konfigurationsnamen der Bindung enthält. Dieser Wert sollte eindeutig sein, da er von der Bindung zur Identifizierung verwendet wird. Ab .NET Framework 4 müssen Bindungen und Verhalten keinen Namen aufweisen. Weitere Informationen zu Standardkonfiguration und zu namenlosen Bindungen und Verhalten finden Sie unter Simplified Configuration und Simplified Configuration for WCF Services.

openTimeout

Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Öffnungsvorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.

receiveErrorHandling

Ein ReceiveErrorHandling-Wert, der angibt, wie nicht verarbeitbare und nicht zustellbare Nachrichten behandelt werden.

receiveRetryCount

Eine ganze Zahl, die die maximale Anzahl von sofortigen Wiederholungsversuchen festlegt, die dem Warteschlangen-Manager zum Senden zur Verfügung steht, wenn die Übertragung einer Nachricht zur Anwendung fehlschlägt.

Wenn die maximale Anzahl der Zustellungsversuche erreicht ist und die Nachricht nicht von der Anwendung empfangen wurde, wird die Nachricht an eine Wiederholungswarteschlange gesendet, um sie später erneut zuzustellen. Das Zeitintervall, nach dem die Nachricht zurück in die sendende Warteschlange übertragen wird, wird durch retryCycleDelay gesteuert Wenn die Wiederholungszyklen den maxRetryCycles-Wert erreichen, wird die Nachricht entweder an die Warteschlange für potenziell schädliche Nachrichten gesendet, oder es wird eine negative Bestätigung zurück zum Absender geschickt.

receiveTimeout

Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Empfangsvorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:10:00.

receiveContextEnabled

Ein boolescher Wert, der angibt, ob Empfangskontext zum Verarbeiten von Nachrichten in Warteschlangen aktiviert ist. Wenn dieser Wert auf true festgelegt ist, kann ein Dienst mit dem Verarbeiten einer Nachricht in der Warteschlange beginnen, die aber in der Warteschlange verbleibt, wenn ein Fehler auftritt bzw. eine Ausnahme ausgelöst wird. Dienste können Nachrichten auch "sperren", um zu einem späteren Zeitpunkt einen erneuten Verarbeitungsversuch zu starten. ReceiveContext stellt einen Mechanismus zum "Abschließen" der verarbeiteten Nachricht bereit, sodass diese aus der Warteschlange entfernt werden kann. Die Nachrichten werden nicht mehr gelesen und erneut über das Netzwerk in Warteschlangen geschrieben, und einzelne Nachrichten werden während der Verarbeit nicht zwischen verschiedenen Dienstinstanzen hin- und hergereicht.

retryCycleDelay

Ein TimeSpan-Wert, der die Zeitverzögerung zwischen den Wiederholungszyklen angibt, wenn versucht wird, eine Nachricht zuzustellen, die nicht sofort zugestellt werden konnte. Der Wert definiert nur die Mindestwartezeit, da die tatsächliche Wartezeit länger sein kann. Der Standardwert ist 00:30:00. Weitere Informationen finden Sie unter RetryCycleDelay.

sendTimeout

Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Sendevorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.

serializationFormat

Definiert das für die Serialisierung des Nachrichtentexts verwendete Format. Dieses Attribut ist vom Typ MsmqMessageSerializationFormat.

timeToLive

Ein TimeSpan-Wert, der angibt, wie lange die Nachricht gültig ist, bis sie abläuft und in die Warteschlange für unzustellbare Nachrichten übertragen wird. Der Standardwert ist 1.00:00:00.

Dieses Attribut wird festgelegt, um sicherzustellen, dass zeitkritische Nachrichten nicht veralten, bevor sie von den empfangenden Anwendungen verarbeitet werden. Eine Nachricht in einer Warteschlange, die nicht von der empfangenden Anmeldung innerhalb des angegebenen Zeitintervalls verarbeitet wird, läuft ab. Abgelaufene Nachrichten werden an eine besondere Warteschlange gesendet: die Warteschlange für unzustellbare Nachrichten. Der Speicherort der Warteschlange für unzustellbare Meldungen wird mithilfe des DeadLetterQueue-Attributs festgelegt. Andernfalls gilt die entsprechende, auf den Zusicherungen basierende Standardeinstellung.

useMsmqTracing

Ein boolescher Wert, der angibt, ob von dieser Bindung verarbeitete Nachrichten verfolgt werden sollen. Der Standardwert ist false. Wenn die Ablaufverfolgung aktiviert ist, werden Berichtsnachrichten erstellt und jedes Mal an die Berichtswarteschlange gesendet, wenn die Nachricht einen Computer mit Message Queuing erreicht oder verlässt.

useSourceJournal

Ein boolescher Wert, der angibt, ob Kopien der von dieser Bindung verarbeiteten Nachrichten in der Quelljournalwarteschlange gespeichert werden sollen. Der Standardwert ist false.

Anwendungen in Warteschlangen, die Nachrichten aufzeichnen möchten, die die Ausgangswarteschlange des Computers verlassen haben, können die Nachrichten in eine Journalwarteschlange kopieren. Wenn eine Nachricht die Ausgangswarteschlange verlässt und eine Bestätigung empfangen wird, dass die Nachricht auf dem Zielcomputer empfangen wurde, wird eine Kopie der Nachricht in der Systemjournalwarteschlange des sendenden Computers behalten.

Untergeordnete Elemente

Element Beschreibung

<security> von <msmqIntegrationBinding>

Definiert die Sicherheitseinstellungen für die Bindung. Dieses Element ist vom Typ MsmqIntegrationSecurityElement.

Übergeordnete Elemente

Element Beschreibung

<bindings>

Dieses Element enthält eine Auflistung von standardmäßigen und benutzerdefinierten Bindungen.

Hinweise

Dieses Bindungselement kann verwendet werden, damit Windows Communication Foundation (WCF)-Anwendungen Meldungen, die COM, MSMQ-interne APIs oder die im ( Default Namespace )System.Messaging-Namespace definierten Typen verwenden, an vorhandene MSMQ-Anwendungen senden und von ihnen empfangen können. Sie können dieses Konfigurationselement verwenden, um anzugeben, wie die Warteschlange adressiert und wie die Übertragungszusicherungen übertragen werden, ob die Nachrichten permanent gespeichert werden müssen und wie die Nachrichten geschützt und authentifiziert werden sollen. Weitere Informationen finden Sie unter How to: Exchange Messages with WCF Endpoints and Message Queuing Applications.

Beispiel

<configuration>
<system.ServiceModel>
    <bindings>
       <msmqIntegrationBinding>
           <binding 
                    closeTimeout="00:00:10" 
                    openTimeout="00:00:20" 
                    receiveTimeout="00:00:30" 
                    sendTimeout="00:00:40" 
                    deadLetterQueue="net.msmq://localhost/blah" 
                    durable="true" 
                    exactlyOnce="true" 
                    maxReceivedMessageSize="1000" 
                    maxImmediateRetries="11" 
                    maxRetryCycles="12"
                    poisonMessageHandling="Disabled" 
                    rejectAfterLastRetry="false" 
                    retryCycleDelay="00:05:55" 
                    timeToLive="00:11:11" 
                    useSourceJournal="true" 
                    useMsmqTracing="true" 
                    serializationFormat="Binary">
                    <security mode="None" />
           </binding>
       </msmqIntegrationBinding
   </bindings>
</system.ServiceModel>
</configuration>

Siehe auch

Verweis

MsmqIntegrationBindingElement
MsmqIntegrationBinding
MsmqIntegrationBindingElement

Konzepte

<binding>

Weitere Ressourcen

Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients
Queues in WCF