Freigeben über


<msmqIntegrationBinding>

Definiert eine Bindung, die Queuing-Unterstützung bereitstellt, indem Nachrichten über MSMQ weitergeleitet werden.

<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding>
          <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

Merkmal Description
closeTimeout Ein TimeSpan Wert, der das Zeitintervall angibt, das für einen abschlussden Vorgang bereitgestellt wird. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00.
customDeadLetterQueue Ein URI, der den Speicherort der Warteschlange mit inaktiven Buchstaben pro Anwendung enthält, in dem Nachrichten, die abgelaufen sind oder fehlgeschlagen sind, übertragen oder übermittelt werden.

Die Warteschlange mit inaktiven Buchstaben ist eine Warteschlange im Warteschlangen-Manager der sendenden Anwendung für abgelaufene Nachrichten, die nicht zugestellt werden konnten.

Der durch CustomDeadLetterQueue die Angabe angegebene URI muss das net.msmq-Schema verwenden.
deadLetterQueue Ein DeadLetterQueueWERT, der angibt, welche Art von Warteschlange für tote Buchstaben verwendet werden soll, falls vorhanden.

Eine Inaktive Warteschlange ist der Speicherort, an dem Nachrichten, die nicht an die Anwendung übermittelt werden konnten, übertragen werden.

Für Nachrichten, die genauOnce Assurance erfordern (d. h. das exactlyOnce Attribut ist auf festgelegt true), wird dieses Attribut standardmäßig in der systemweiten Transaktions-Dead-Letter-Warteschlange in MSMQ verwendet.

Für Nachrichten, die keine Zusicherungen erfordern, wird dieses Attribut standardmäßig auf null.
Langlebig Ein boolescher Wert, der angibt, ob die Nachricht dauerhaft oder veränderlich in der Warteschlange ist. Eine dauerhafte Nachricht überlebt einen Warteschlangen-Manager-Absturz, während eine veränderliche Nachricht nicht. Veränderliche Nachrichten sind nützlich, wenn Anwendungen eine geringere Latenz erfordern und gelegentlich verlorene Nachrichten tolerieren können. Wenn das exactlyOnce Attribut auf true festgelegt ist, müssen die Nachrichten dauerhaft sein. Der Standardwert lautet true.
Exactlyonce Ein boolescher Wert, der angibt, ob jede Nachricht nur einmal zugestellt wird. Der Absender wird dann über Zustellungsfehler benachrichtigt. Ist durable dies falseder Fall, wird dieses Attribut ignoriert, und Nachrichten werden ohne Zustellsicherheit übertragen. Der Standardwert lautet true. Weitere Informationen finden Sie unter ExactlyOnce.
maxReceivedMessageSize Eine positive ganze Zahl, die die maximale Nachrichtengröße in Bytes definiert, einschließlich Kopfzeilen, die von dieser Bindung verarbeitet wird. Der Absender einer Nachricht, die diesen Grenzwert überschreitet, erhält einen SOAP-Fehler. Der Empfänger legt die Nachricht ab und erstellt einen Eintrag des Ereignisses im Ablaufverfolgungsprotokoll. Der Standardwert ist 65536. Diese gebundene Nachrichtengröße soll die Gefährdung von Denial of Service (DoS)-Angriffen einschränken.
Maxretrycycles Eine ganze Zahl, die die Anzahl der Wiederholungszyklen angibt, die von der Giftnachrichtenerkennungsfunktion verwendet werden. Eine Nachricht wird zu einer Giftnachricht, wenn alle Zustellungsversuche aller Zyklen fehlschlagen. Der Standard ist 2. Weitere Informationen finden Sie unter MaxRetryCycles.
name Eine Zeichenfolge, die den Konfigurationsnamen der Bindung enthält. Dieser Wert sollte eindeutig sein, da er als Identifikation für die Bindung verwendet wird. Ab .NET Framework 4 müssen Bindungen und Verhaltensweisen keinen Namen haben. Weitere Informationen zu Standardkonfigurationen und namenslosen Bindungen und Verhaltensweisen finden Sie unter Vereinfachte Konfiguration und vereinfachte Konfiguration für WCF-Dienste.
openTimeout Ein TimeSpan Wert, der das Für den Abschluss eines geöffneten Vorgangs bereitgestellte Zeitintervall angibt. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00.
Receiveerrorhandling Ein ReceiveErrorHandling Wert, der angibt, wie giftige und nicht verpatchbare Nachrichten behandelt werden.
receiveRetryCount Eine ganze Zahl, die die maximale Anzahl von sofortigen Wiederholungen angibt, die der Warteschlangen-Manager versuchen soll, wenn die Übertragung einer Nachricht aus der Anwendungswarteschlange an die Anwendung fehlschlägt.

Wenn die maximale Anzahl von Zustellungsversuchen erreicht wird und auf die Nachricht nicht von der Anwendung zugegriffen wird, wird die Nachricht zu einem späteren Zeitpunkt an eine Wiederholungswarteschlange gesendet. Die Zeitspanne, in der die Nachricht zurück in die Sendewarteschlange übertragen wird, wird durch retryCycleDelaygesteuert. Wenn wiederholungszyklen den maxRetryCycles Wert erreichen, wird die Nachricht entweder an die Giftnachrichtenwarteschlange gesendet, oder eine negative Bestätigung wird an den Absender zurückgesendet.
receiveTimeout Ein TimeSpan Wert, der das Für den Abschluss eines Empfangsvorgangs bereitgestellte Zeitintervall angibt. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:10:00.
receiveContextEnabled Ein Boolescher Wert, der angibt, ob der Empfangskontext für die Verarbeitung von Nachrichten in Warteschlangen aktiviert ist. Wenn dies auf true festgelegt ist, kann ein Dienst eine Nachricht in der Warteschlange "einpupfen", um mit der Verarbeitung zu beginnen, und wenn etwas schief geht und eine Ausnahme ausgelöst wird, verbleibt er in der Warteschlange. Dienste können nachrichten auch "sperren", um die Verarbeitung zu einem späteren Zeitpunkt erneut zu wiederholen. ReceiveContext bietet einen Mechanismus zum "Abschließen" der Nachricht, sobald sie verarbeitet wurde, damit sie aus der Warteschlange entfernt werden kann. Nachrichten werden nicht mehr gelesen und erneut in Warteschlangen über das Netzwerk geschrieben, und einzelne Nachrichten werden während der Verarbeitung nicht auf verschiedene Dienstinstanzen verteilt.
Retrycycledelay Ein TimeSpan-Wert, der die Zeitverzögerung zwischen Wiederholungszyklen angibt, wenn versucht wird, eine Nachricht zu übermitteln, die nicht sofort zugestellt werden konnte. Der Wert definiert nur die minimale Wartezeit, 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 Für den Abschluss eines Sendevorgangs bereitgestellte Zeitintervall angibt. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00.
serializationFormat Definiert das Format, das für die Serialisierung des Nachrichtentexts verwendet wird. Dieses Attribut ist vom Typ MsmqMessageSerializationFormat.
timeToLive Ein TimeSpan-Wert, der angibt, wie lange die Nachrichten gültig sind, bevor sie abgelaufen sind und in die Warteschlange für den Inaktiven Buchstaben eingefügt werden. Der Standardwert ist 1.00:00:00.

Dieses Attribut wird festgelegt, um sicherzustellen, dass zeitkritische Nachrichten nicht veraltet werden, bevor sie von den empfangenden Anwendungen verarbeitet werden. Eine Nachricht in einer Warteschlange, die nicht von der empfangenden Anwendung innerhalb des angegebenen Zeitintervalls verbraucht wird, wird als abgelaufen bezeichnet. Abgelaufene Nachrichten werden an eine spezielle Warteschlange gesendet, die als Inaktive Briefwarteschlange bezeichnet wird. Die Position der Warteschlange für inaktive Buchstaben wird basierend auf den Zusicherungen mit dem DeadLetterQueue Attribut oder auf die entsprechende Standardeinstellung festgelegt.
useMsmqTracing Ein boolescher Wert, der angibt, ob von dieser Bindung verarbeitete Nachrichten nachverfolgt werden sollen. Der Standardwert lautet false. Wenn die Ablaufverfolgung aktiviert ist, werden Berichtsnachrichten erstellt und bei jedem Verlassen oder Eintreffen der Nachricht an einen Message Queuing-Computer an die Berichtswarteschlange gesendet.
useSourceJournal Ein boolescher Wert, der Kopien von Nachrichten angibt, die von dieser Bindung verarbeitet werden, sollte im Quelljournal gespeichert werden. Der Standardwert lautet false.

In die Warteschlange eingereihte Anwendungen, die einen Datensatz von Nachrichten speichern möchten, die die ausgehende Warteschlange des Computers verlassen haben, können die Nachrichten in eine Journalwarteschlange kopieren. Sobald eine Nachricht die ausgehende Warteschlange 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 gespeichert.

{serializationFormat} Attribut

Wert Description
XML XML-Format
Binary Binärformat
ActiveX ActiveX-Format
ByteArray Serialisiert das Objekt in ein Bytearray.
Streamen Der als Datenstrom formatierte Textkörper

Untergeordnete Elemente

Element Description
<Sicherheit> Definiert die Sicherheitseinstellungen für die Bindung. Dieses Element ist vom Typ MsmqIntegrationSecurityElement.

Übergeordnete Elemente

Element Description
<Einbände> Dieses Element enthält eine Sammlung von Standard- und benutzerdefinierten Bindungen.

Bemerkungen

Dieses Bindungselement kann verwendet werden, um Windows Communication Foundation (WCF)-Anwendungen zu ermöglichen, Nachrichten an vorhandene MSMQ-Anwendungen zu senden und nachrichten von vorhandenen MSMQ-Anwendungen zu empfangen, die entweder COM, MSMQ native APIs oder die im System.Messaging Namespace definierten Typen verwenden. Mit diesem Konfigurationselement können Sie Möglichkeiten angeben, wie sie die Warteschlange adressieren, Zusicherungen übertragen, ob Nachrichten dauerhaft gespeichert werden müssen, und wie Nachrichten geschützt und authentifiziert werden sollen. Weitere Informationen finden Sie unter How to: Exchange Messages with WCF Endpoints and Message Queuing Applications.

Example

<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