<netMsmqBinding>

Definiert eine Bindung in der Warteschlange, die für eine computerübergreifende Kommunikation geeignet ist.

<configuration>
  <system.serviceModel>
    <bindings>
      <netMsmqBinding>

Syntax

<netMsmqBinding>
  <binding closeTimeout="TimeSpan"
           customDeadLetterQueue="Uri"
           deadLetterQueue="Uri"
           durable="Boolean"
           exactlyOnce="Boolean"
           maxBufferPoolSize="Integer"
           maxReceivedMessageSize="Integer"
           maxRetryCycles="Integer"
           name="String"
           openTimeout="TimeSpan"
           poisonMessageHandling="Disabled/EnabledIfSupported"
           queueTransferProtocol="Native/Srmp/SrmpSecure"
           receiveErrorHandling="Drop/Fault/Move/Reject"
           receiveTimeout="TimeSpan"
           receiveRetryCount="Integer"
           rejectAfterLastRetry="Boolean"
           retryCycleDelay="TimeSpan"
           sendTimeout="TimeSpan"
           timeToLive="TimeSpan"
           useActiveDirectory="Boolean"
           useMsmqTracing="Boolean"
           useSourceJournal="Boolean">
    <security>
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               clientCredentialType="None/Windows/UserName/Certificate/InfoCard" />
      <transport msmqAuthenticationMode="None/WindowsDomain/Certificate"
                 msmqEncryptionAlgorithm="RC4Stream/AES"
                 msmqProtectionLevel="None/Sign/EncryptAndSign"
                 msmqSecureHashAlgorithm="MD5/SHA1/SHA256/SHA512" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</netMsmqBinding>

Attribute und Elemente

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

Attribute

attribute 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 eine Warteschlange für Nachrichten, die nicht zugestellt werden konnten.

Bei Nachrichten, die exactlyOnce-Zusicherung erfordern (das heißt, das exactlyOnce-Attribut ist auf true gesetzt), 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 permanente Meldung überlebt einen Warteschlangen-Managerabsturz, was für eine flüchtige Meldung 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 die von dieser Bindung verarbeiteten einzelnen Nachrichten genau einmal empfangen werden. 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.
maxBufferPoolSize Eine ganze Zahl, die die maximale Pufferpoolgröße für diese Bindung angibt. Der Standard ist 8.
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 Standard ist 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 ist 3. Weitere Informationen finden Sie unter MaxRetryCycles.
name Erforderliches Attribut. 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 Verhaltensweisen keinen Namen aufweisen. Weitere Informationen über Standardkonfiguration und namenlose Bindungen und Verhalten finden Sie unter Simplified Configuration (Vereinfachte Konfiguration) und Simplified Configuration for WCF Services (Vereinfachte Konfiguration für WCF-Dienste).
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.
QueueTransferProtocol Ein gültiger QueueTransferProtocol-Wert, der den Wartenschlangentransport für den Kommunikationskanal angibt, der von dieser Bindung verwendet wird. MSMQ unterstützt keine Active Directory-Adressierung in Verbindung mit dem SOAP Reliable Messaging Protocol. Dieses Attribut sollte daher nicht auf Srmp oder Srmps festgelegt werden, wenn das useActiveDirectory-Attribut auf true festgelegt ist.
receiveErrorHandling Ein ReceiveErrorHandling-Wert, der angibt, wie nicht verarbeitbare und nicht zustellbare Nachrichten behandelt werden.
receiveRetryCount Eine ganze Zahl, die die maximalen Versuche angibt, die dem Warteschlangen-Manager zum Senden einer Nachricht zur Verfügung stehen, bevor diese in die Wiederholungswarteschlange übertragen wird.
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.
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:10: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.
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.
usingActiveDirectory Gibt einen booleschen Wert zurück, der angibt, ob Warteschlangenadressen mit Active Directory konvertiert werden sollen.

MSMQ-Warteschlangenadressen können aus Pfadnamen oder aus direkten Formatnamen bestehen. Bei direkten Formatnamen wird der Computername von MSMQ mit DNS, NetBIOS oder IP aufgelöst. Bei Pfadnamen wird der Computername von MSMQ mit Active Directory aufgelöst.

Standardmäßig konvertiert der Windows Communication Foundation (WCF)-Warteschlangentransport den URI einer Nachrichtenwarteschlange in einen direkten Formatnamen. Durch Festlegen der UseActiveDirectory-Eigenschaft auf True kann von einer Anwendung angegeben werden, dass der Computername vom Warteschlangentransport mit Active Directory anstelle von DNS, NetBIOS oder IP aufgelöst werden soll.
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 beibehalten.

Untergeordnete Elemente

Element BESCHREIBUNG
<readerQuotas> Definiert die Beschränkungen der Komplexität von SOAP-Nachrichten, die von Endpunkten verarbeitet werden können, die mit dieser Bindung konfiguriert wurden. Dieses Element ist vom Typ XmlDictionaryReaderQuotasElement.
<security> Definiert die Sicherheitseinstellungen für die Bindung. Dieses Element ist vom Typ NetMsmqSecurityElement.

Übergeordnete Elemente

Element BESCHREIBUNG
<bindings> Dieses Element enthält eine Auflistung von standardmäßigen und benutzerdefinierten Bindungen.

Bemerkungen

Die netMsmqBinding-Bindung stellt Unterstützung für Warteschlangen bereit, indem MSMQ (Microsoft Message Queuing) als Transport eingesetzt wird, und ermöglicht Unterstützung für lose miteinander verknüpfte Anwendungen, Fehlerisolierung, Lastenausgleich und Vorgänge im Offlinemodus. Eine Erörterung dieser Funktionen finden Sie unter Warteschlangen in WCF.

Beispiel

<configuration>
  <system.ServiceModel>
    <bindings>
      <netMsmqBinding>
        <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"
                 maxRetries="11"
                 maxRetryCycles="12"
                 poisonMessageHandling="Disabled"
                 rejectAfterLastRetry="false"
                 retryCycleDelay="00:05:55"
                 timeToLive="00:11:11"
                 sourceJournal="true"
                 useMsmqTracing="true"
                 useActiveDirectory="true">
          <security>
            <message clientCredentialType="Windows" />
          </security>
        </binding>
      </netMsmqBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

Siehe auch