<msmqIntegrationBinding>
Definieert een binding die ondersteuning biedt voor wachtrijen door berichten te routeren via MSMQ.
<Configuratie>
<system.serviceModel>
<Bindings>
<customBinding>
<Bindend>
<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>
Kenmerken en elementen
In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven
Kenmerken
Kenmerk | Beschrijving |
---|---|
closeTimeout | Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een close-bewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
customDeadLetterQueue | Een URI die de locatie bevat van de wachtrij met onbestelbare berichten per toepassing, waar berichten worden geplaatst die zijn verlopen of die zijn mislukt voor overdracht of bezorging. De wachtrij met onbestelbare berichten is een wachtrij op de wachtrijbeheerder van de verzendende toepassing voor verlopen berichten die niet zijn bezorgd. De URI die is opgegeven door CustomDeadLetterQueue moet het net.msmq-schema gebruiken. |
deadLetterQueue | Een DeadLetterQueuewaarde die aangeeft welk type wachtrij met onbestelbare berichten moet worden gebruikt, indien van toepassing Een wachtrij met onbestelbare berichten is de locatie waar berichten die niet zijn bezorgd bij de toepassing, worden overgedragen. Voor berichten waarvoor exactlyOnce-controle is vereist (dat wil zeggen, het exactlyOnce kenmerk is ingesteld op true ), wordt dit kenmerk standaard ingesteld op de systeembrede transactionele wachtrij met onbestelbare brieven in MSMQ.Voor berichten waarvoor geen zekerheid is vereist, wordt dit kenmerk standaard ingesteld op null . |
Duurzaam | Een Booleaanse waarde die aangeeft of het bericht duurzaam of vluchtig is in de wachtrij. Een duurzaam bericht overleeft een crash van wachtrijbeheer, terwijl een vluchtig bericht dat niet doet. Vluchtige berichten zijn handig wanneer toepassingen een lagere latentie vereisen en af en toe verloren berichten kunnen tolereren. Als het exactlyOnce kenmerk is ingesteld op true , moeten de berichten duurzaam zijn. De standaardwaarde is true . |
exactlyOnce | Een Booleaanse waarde die aangeeft of elk bericht slechts eenmaal wordt bezorgd. De afzender wordt vervolgens op de hoogte gesteld van mislukte leveringen. Wanneer durable is false , wordt dit kenmerk genegeerd en worden berichten overgedragen zonder bezorgingsgarantie. De standaardwaarde is true . Voor meer informatie raadpleegt u ExactlyOnce. |
maxReceivedMessageSize | Een positief geheel getal dat de maximale berichtgrootte definieert, in bytes, inclusief headers, die door deze binding wordt verwerkt. De afzender van een bericht dat deze limiet overschrijdt, ontvangt een SOAP-fout. De ontvanger verwijdert het bericht en maakt een vermelding van de gebeurtenis in het traceringslogboek. De standaardwaarde is 65536. Deze afhankelijke berichtgrootte is bedoeld om de blootstelling aan DoS-aanvallen (Denial of Service) te beperken. |
maxRetryCycles | Een geheel getal dat het aantal cycli voor opnieuw proberen aangeeft dat wordt gebruikt door de functie voor het detecteren van gifberichten. Een bericht wordt een gifbericht wanneer alle bezorgingspogingen van alle cycli zijn mislukt. De standaardwaarde is 2. Voor meer informatie raadpleegt u MaxRetryCycles. |
naam | Een tekenreeks die de configuratienaam van de binding bevat. Deze waarde moet uniek zijn omdat deze wordt gebruikt als identificatie voor de binding. Vanaf .NET Framework 4 zijn bindingen en gedrag niet vereist om een naam te hebben. Zie Vereenvoudigde configuratie en Vereenvoudigde configuratie voor WCF-services voor meer informatie over standaardconfiguratie en naamloze bindingen en gedrag. |
openTimeout | Een TimeSpan waarde die het tijdsinterval aangeeft dat een open bewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
receiveErrorHandling | Een ReceiveErrorHandling waarde die aangeeft hoe gif- en niet-dispatchable berichten worden verwerkt. |
receiveRetryCount | Een geheel getal dat het maximum aantal onmiddellijke nieuwe pogingen aangeeft dat de wachtrijbeheerder moet proberen als de overdracht van een bericht van de toepassingswachtrij naar de toepassing mislukt. Als het maximum aantal bezorgingspogingen is bereikt en het bericht niet wordt geopend door de toepassing, wordt het bericht verzonden naar een wachtrij voor opnieuw proberen voor opnieuw bezorgen op een later tijdstip. De hoeveelheid tijd voordat het bericht wordt teruggestuurd naar de verzendende wachtrij wordt bepaald door retryCycleDelay . Als cycli voor opnieuw proberen de maxRetryCycles waarde bereiken, wordt het bericht verzonden naar de wachtrij met gifberichten of wordt er een negatieve bevestiging naar de afzender verzonden. |
receiveTimeout | Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een ontvangstbewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:10:00. |
receiveContextEnabled | Een Booleaanse waarde die aangeeft of de ontvangstcontext voor het verwerken van berichten in wachtrijen is ingeschakeld. Wanneer dit is ingesteld op true , kan een service een bericht in de wachtrij 'bekijken' om het te verwerken. Als er iets misgaat en er een uitzondering wordt gegenereerd, blijft het in de wachtrij staan. Services kunnen ook berichten 'vergrendelen' om de verwerking op een later tijdstip opnieuw te proberen. ReceiveContext biedt een mechanisme voor het 'voltooien' van het bericht nadat het is verwerkt, zodat het uit de wachtrij kan worden verwijderd. Berichten worden niet meer gelezen en opnieuw geschreven naar wachtrijen via het netwerk en afzonderlijke berichten worden niet meer over verschillende service-exemplaren heen geslagen tijdens de verwerking. |
retryCycleDelay | Een TimeSpan-waarde die de tijdsvertraging tussen de cycli van nieuwe pogingen aangeeft bij het bezorgen van een bericht dat niet onmiddellijk kan worden bezorgd. De waarde definieert alleen de minimale wachttijd, omdat de werkelijke wachttijd langer kan zijn. De standaardwaarde is 00:30:00. Voor meer informatie raadpleegt u RetryCycleDelay. |
sendTimeout | Een TimeSpan waarde die het tijdsinterval aangeeft dat een verzendbewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
serialisatieOpmaak | Definieert de indeling die wordt gebruikt voor serialisatie van de berichttekst. Dit kenmerk is van het type MsmqMessageSerializationFormat. |
timeToLive | Een TimeSpan-waarde die aangeeft hoe lang de berichten geldig zijn voordat ze verlopen en in de wachtrij met onbestelbare berichten worden geplaatst. De standaardwaarde is 1.00:00:00. Dit kenmerk is ingesteld om ervoor te zorgen dat tijdgevoelige berichten niet verlopen voordat ze worden verwerkt door de ontvangende toepassingen. Een bericht in een wachtrij dat niet binnen het opgegeven tijdsinterval door de ontvangende toepassing wordt gebruikt, is verlopen. Verlopen berichten worden verzonden naar een speciale wachtrij, de wachtrij met onbestelbare berichten. De locatie van de wachtrij met onbestelbare berichten wordt ingesteld met het DeadLetterQueue kenmerk of op de juiste standaardwaarde, op basis van garanties. |
useMsmqTracing | Een Booleaanse waarde die aangeeft of berichten die door deze binding worden verwerkt, moeten worden getraceerd. De standaardwaarde is false . Wanneer tracering is ingeschakeld, worden rapportberichten gemaakt en verzonden naar de rapportwachtrij telkens wanneer het bericht vertrekt of op een Message Queuing-computer aankomt. |
useSourceJournal | Een Booleaanse waarde die kopieën aangeeft van berichten die door deze binding worden verwerkt, moeten worden opgeslagen in het bronlogboek. De standaardwaarde is false .Toepassingen in de wachtrij die berichten willen bijhouden die de uitgaande wachtrij van de computer hebben verlaten, kunnen de berichten kopiëren naar een logboekwachtrij. Zodra een bericht de uitgaande wachtrij verlaat en een bevestiging wordt ontvangen dat het bericht is ontvangen op de doelcomputer, wordt een kopie van het bericht bewaard in de systeemlogboekwachtrij van de verzendende computer. |
{serializationFormat} Kenmerk
Waarde | Beschrijving |
---|---|
Xml | XML-indeling |
Binair | Binaire indeling |
ActiveX | ActiveX-indeling |
Bytearray | Serialiseert het object naar een matrix van bytes. |
Stream | De hoofdtekst die is opgemaakt als een stroom |
Onderliggende elementen
Element | Beschrijving |
---|---|
<Veiligheid> | Definieert de beveiligingsinstellingen voor de binding. Dit element is van het type MsmqIntegrationSecurityElement. |
Bovenliggende elementen
Element | Beschrijving |
---|---|
<Bindings> | Dit element bevat een verzameling standaard- en aangepaste bindingen. |
Opmerkingen
Dit bindingselement kan worden gebruikt om WCF-toepassingen (Windows Communication Foundation) in staat te stellen berichten te verzenden naar en te ontvangen van bestaande MSMQ-toepassingen die gebruikmaken van COM, MSMQ systeemeigen API's of de typen die zijn gedefinieerd in de System.Messaging naamruimte U kunt dit configuratie-element gebruiken om manieren op te geven om de wachtrij aan te pakken, overdrachtsgaranties, of berichten duurzaam moeten worden opgeslagen, en hoe berichten moeten worden beveiligd en geverifieerd. Zie How to: Exchange Messages with WCF Endpoints and Message Queuing Applications (Berichten uitwisselen met WCF-eindpunten en Message Queuing-toepassingen) voor meer informatie.
Voorbeeld
<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>