Megosztás a következőn keresztül:


<netMsmqBinding>

A gépközi kommunikációhoz megfelelő üzenetsoros kötést definiál.

<Konfigurációs>
  <system.serviceModel>
    <Kötések>
      <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>

Attribútumok és elemek

Az alábbi szakaszok az attribútumokat, a gyermekelemeket és a szülőelemeket ismertetik.

Attribútumok

Attribútum Leírás
closeTimeout Egy TimeSpan érték, amely megadja a bezárási művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie.Zero Az alapértelmezett érték 00:01:00.
customDeadLetterQueue Egy URI, amely tartalmazza az alkalmazásonkénti kézbesítetlen levelek üzenetsorának helyét, ahol a lejárt vagy sikertelen átvitelt vagy kézbesítést tartalmazó üzenetek kerülnek elhelyezésre.

A kézbesítetlen levelek üzenetsora egy üzenetsor a küldő alkalmazás üzenetsor-kezelőjében azoknak a lejárt üzeneteknek, amelyeket nem sikerült kézbesíteni.

A megadott CustomDeadLetterQueue URI-nak a net.msmq sémát kell használnia.
deadLetterQueue Érték DeadLetterQueue , amely megadja, hogy milyen típusú kézbesítetlen üzenetsort kell használni, ha van ilyen.

A kézbesítetlen levelek üzenetsora az a hely, ahol a rendszer átviszi az alkalmazásba nem kézbesített üzeneteket.

A biztosítékot igénylő exactlyOnce üzenetek esetében (azaz az exactlyOnce attribútum értéke true) ez az attribútum alapértelmezés szerint a rendszerszintű tranzakciós kézbesítetlen levelek üzenetsorára kerül az MSMQ-ban.

A biztosítékot nem igénylő üzenetek esetében ez az attribútum alapértelmezés szerint a következő lesz null: .
durable Logikai érték, amely azt jelzi, hogy az üzenet tartós vagy változékony-e az üzenetsorban. A tartós üzenetek túlélik az üzenetsor-kezelő összeomlását, míg egy változékony üzenet nem. Az ingadozó üzenetek akkor hasznosak, ha az alkalmazások kisebb késést igényelnek, és képesek elviselni az időnként elveszett üzeneteket. Ha az exactlyOnce attribútum trueértéke , az üzeneteknek tartósnak kell lenniük. A mező alapértelmezett értéke: true.
exactlyOnce Logikai érték, amely azt jelzi, hogy a kötés által feldolgozott üzenetek csak egyszer lesznek kézbesítve. Ezután a feladó értesítést kap a kézbesítési hibákról. Ha durable az , falseezt az attribútumot a rendszer figyelmen kívül hagyja, és az üzenetek kézbesítési garancia nélkül lesznek átadva. A mező alapértelmezett értéke: true. További információ: ExactlyOnce.
maxBufferPoolSize Egy egész szám, amely meghatározza a kötés pufferkészletének maximális méretét. Az alapértelmezett érték a 8.
maxReceivedMessageSize Pozitív egész szám, amely a kötés által feldolgozott maximális üzenetméretet határozza meg bájtban, beleértve a fejléceket is. A korlátot túllépő üzenet feladója SOAP-hibát kap. A fogadó eldobja az üzenetet, és létrehozza az esemény bejegyzését a nyomkövetési naplóban. Az alapértelmezett érték a 65536. Ennek az üzenetméretnek a célja, hogy korlátozza a szolgáltatásmegtagadási (DoS-) támadásoknak való kitettséget.
maxRetryCycles Egész szám, amely a méregüzenet-észlelési funkció által használt újrapróbálkozási ciklusok számát jelzi. Az üzenetek akkor válnak mérgező üzenetté, ha minden ciklus összes kézbesítési kísérlete meghiúsul. Az alapértelmezett érték a 3. További információ: MaxRetryCycles.
name Kötelező attribútum. A kötés konfigurációs nevét tartalmazó sztring. Ennek az értéknek egyedinek kell lennie, mert a kötés azonosítására szolgál. A .NET-keretrendszer 4-től kezdődően a kötéseknek és viselkedéseknek nem kell nevet adniuk. Az alapértelmezett konfigurációval, valamint a név nélküli kötésekkel és viselkedésekkel kapcsolatos további információkért lásd: Egyszerűsített konfiguráció és egyszerűsített konfiguráció a WCF-szolgáltatásokhoz.
openTimeout Egy TimeSpan érték, amely megadja a nyitott művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie.Zero Az alapértelmezett érték 00:01:00.
QueueTransferProtocol QueueTransferProtocol Érvényes érték, amely meghatározza a kötés által használt üzenetsoros kommunikációs csatorna átvitelét. Az MSMQ nem támogatja az Active Directory-címzést a SOAP Reliable Messaging Protocol használatakor. Ezért ezt az attribútumot nem szabad a értékre Srmp állítani, vagy Srmps ha az useActiveDirectory attribútum értéke true.
receiveErrorHandling Egy ReceiveErrorHandling érték, amely meghatározza, hogyan kezelik a mérgeket és a nem nyilvánosságra hozható üzeneteket.
receiveRetryCount Egész szám, amely megadja, hogy az üzenetsor-kezelő legfeljebb hányszor kíséreljen meg üzenetet küldeni, mielőtt átvini az újrapróbálkozási üzenetsorba.
receiveTimeout Egy TimeSpan érték, amely megadja a fogadási művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie.Zero Az alapértelmezett érték 00:10:00.
retryCycleDelay Egy TimeSpan érték, amely megadja az újrapróbálkozási ciklusok közötti időt, amikor olyan üzenetet próbál kézbesíteni, amelyet nem sikerült azonnal kézbesíteni. Az érték csak a minimális várakozási időt határozza meg, mert a tényleges várakozási idő hosszabb lehet. Az alapértelmezett érték 00:10:00. További információ: RetryCycleDelay.
sendTimeout Egy TimeSpan érték, amely megadja a küldési művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie.Zero Az alapértelmezett érték 00:01:00.
timeToLive Egy TimeSpan érték, amely meghatározza, hogy mennyi ideig érvényesek az üzenetek a lejáratuk előtt, és helyezze őket a kézbesítetlen levelek üzenetsorába. Az alapértelmezett érték 1.00:00:00.

Ez az attribútum biztosítja, hogy az időérzékeny üzenetek ne legyenek elavultak, mielőtt a fogadó alkalmazások feldolgoznák őket. A fogadó alkalmazás által a megadott időintervallumon belül nem használt üzenetsorban a rendszer azt állítja, hogy lejárt. A lejárt üzeneteket a rendszer a kézbesítetlen levelek várólistájának nevezett speciális üzenetsorba küldi. A kézbesítetlen levelek üzenetsorának helye az DeadLetterQueue attribútummal vagy a megfelelő alapértelmezett értékre van beállítva a biztosítékok alapján.
usingActiveDirectory Logikai érték, amely meghatározza, hogy az üzenetsor-címeket az Active Directory használatával kell-e konvertálni.

Az MSMQ-üzenetsor-címek tartalmazhatnak elérési utakat vagy közvetlen formátumneveket. A közvetlen formátumnévvel az MSMQ DNS, NetBIOS vagy IP használatával oldja fel a számítógép nevét. Az elérési út nevével az MSMQ feloldja a számítógép nevét az Active Directory használatával.

Alapértelmezés szerint a Windows Communication Foundation (WCF) üzenetsor-átvitele az üzenetsor URI-ját közvetlen formátumnévvé alakítja. A tulajdonság igaz értékre állításával UseActiveDirectory egy alkalmazás megadhatja, hogy az üzenetsorba helyezett átvitel a DNS, a NetBIOS vagy az IP helyett az Active Directory használatával oldja fel a számítógép nevét.
useMsmqTracing Logikai érték, amely meghatározza, hogy a kötés által feldolgozott üzeneteket nyomon kell-e követni. A mező alapértelmezett értéke: false. Ha a nyomkövetés engedélyezve van, a rendszer a jelentésüzeneteket minden alkalommal létrehozza és elküldi a jelentéssorba, amikor az üzenet elhagyja vagy megérkezik egy Message Queuing-számítógépre.
useSourceJournal A kötés által feldolgozott üzenetek másolatát meghatározó logikai értéket a forrásnaplóban kell tárolni. A mező alapértelmezett értéke: false.

Azok az üzenetsoros alkalmazások, amelyek a számítógép kimenő üzenetsorából kilépő üzenetekről szeretnének nyilvántartást készíteni, átmásolhatják az üzeneteket egy naplósorba. Ha egy üzenet elhagyja a kimenő üzenetsort, és nyugtázás érkezik arról, hogy az üzenet a célszámítógépen érkezett, az üzenet egy példánya a küldő számítógép rendszernapló-üzenetsorában marad.

Gyermekelemek

Elem Leírás
<readerQuotas> Meghatározza a SOAP-üzenetek összetettségére vonatkozó korlátozásokat, amelyeket az ezzel a kötéssel konfigurált végpontok dolgozhatnak fel. Ez az elem típusa XmlDictionaryReaderQuotasElement.
<Biztonsági> Meghatározza a kötés biztonsági beállításait. Ez az elem típusa NetMsmqSecurityElement.

Szülőelemek

Elem Leírás
<Kötések> Ez az elem standard és egyéni kötések gyűjteményét tartalmazza.

Megjegyzések

A netMsmqBinding kötés a Microsoft Message Queuing (MSMQ) átvitele révén támogatja a sorba állítást, és lehetővé teszi a lazán összekapcsolt alkalmazások, a hibák elkülönítése, a terhelés simítása és a leválasztott műveletek támogatását. A funkciók ismertetését lásd: Üzenetsorok a WCF-ben.

Példa

<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>

Lásd még