<reliableSession>
A WS-Reliable Üzenetkezelés beállítását határozza meg. Ha ezt az elemet hozzáadja egy egyéni kötéshez, az eredményként kapott csatorna támogatja a pontosan egyszeri kézbesítési biztosítékokat.
<Konfigurációs>
<system.serviceModel>
<Kötések>
<customBinding>
<Kötelező>
<reliableSession>
Syntax
<reliableSession acknowledgementInterval="TimeSpan"
flowControlEnabled="Boolean"
inactivityTimeout="TimeSpan"
maxPendingChannels="Integer"
maxRetryCount="Integer"
maxTransferWindowSize="Integer"
reliableMessagingVersion="Default/WSReliableMessagingFebruary2005/WSReliableMessaging11"
ordered="Boolean" />
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 |
---|---|
acknowledgementInterval | Egy TimeSpan , amely a csatorna által megadott maximális időintervallumot tartalmazza, hogy az addig fogadott üzenetekről nyugtát küldjön. Az alapértelmezett érték 00:00:0.2. |
flowControlEnabled | Logikai érték, amely azt jelzi, hogy aktiválva van-e a speciális folyamatvezérlés, a WS-Reliable üzenetküldés folyamatvezérlésének Microsoft-specifikus implementációja. A mező alapértelmezett értéke: true . |
inactivityTimeout | A TimeSpan , amely meghatározza azt a maximális időtartamot, amellyel a csatorna lehetővé teszi, hogy a másik kommunikációs fél ne küldjön üzeneteket a csatorna hibája előtt. Az alapértelmezett érték 00:10:00. A csatornán végzett tevékenység alkalmazás- vagy infrastruktúraüzenetek fogadásaként van definiálva. Ez a tulajdonság szabályozza az inaktív munkamenetek életben tartásához szükséges maximális időtartamot. Ha hosszabb idő telik el tevékenység nélkül, az infrastruktúra és a csatorna hibái megszakítják a munkamenetet. Megjegyzés: Nem szükséges, hogy az alkalmazás rendszeres időközönként üzeneteket küldjön a kapcsolat életben tartásához. |
maxPendingChannels | Egy egész szám, amely meghatározza, hogy legfeljebb hány csatorna várakozhat a figyelő elfogadására. Ennek az értéknek 1 és 16384 közé kell esnie, beleértve a értéket is. Az alapértelmezett érték 4. A csatornák függőben vannak, amikor elfogadásra várnak. A korlát elérése után a rendszer nem hoz létre csatornákat. Ehelyett függő módban vannak, amíg ez a szám nem csökken (a függőben lévő csatornák elfogadásával). Ez egy gyári korlát. Amikor eléri a küszöbértéket, és egy távoli alkalmazás megpróbál létrehozni egy új megbízható munkamenetet, a rendszer elutasítja a kérést, és a hibát kérő nyitott műveletet. Ez a korlát nem vonatkozik a függőben lévő kimenő csatornák számára. |
maxRetryCount | Egy egész szám, amely meghatározza, hogy egy megbízható csatorna legfeljebb hányszor kísérel meg újraküldni egy üzenetet, amelyről nem kapott nyugtázást. Ehhez hívja meg a Küldés parancsot a mögöttes csatornán. Ennek az értéknek nullánál nagyobbnak kell lennie. Az alapértelmezett érték 8. Ennek az értéknek nullánál nagyobb egész számnak kell lennie. Ha a legutóbbi újraküldés után nem érkezik nyugtázás, a csatorna meghibásodik. Az üzenet akkor minősül átvittnek, ha a címzett nyugtázta a címzettnél történő kézbesítést. Ha egy továbbított üzenethez bizonyos időn belül nem érkezett nyugtázás, az infrastruktúra automatikusan újraküldi az üzenetet. Az infrastruktúra legfeljebb a tulajdonság által megadott számú alkalommal próbálja újra elküldeni az üzenetet. Ha a legutóbbi újraküldés után nem érkezik nyugtázás, a csatorna meghibásodik. Az infrastruktúra egy exponenciális háttéralgoritmussal határozza meg, hogy mikor kell újraküldni egy kiszámított átlagos oda-visszaúti idő alapján. Az idő kezdetben 1 másodperccel kezdődik az újraközvetítés előtt, és minden kísérletnél megduplázva a késleltetést, ami körülbelül 8,5 percet eredményez az első továbbítási kísérlet és az utolsó újraközvetítési kísérlet között. Az első újraközvetítési kísérlet időpontja a kiszámított oda-vissza menetidőnek és a próbálkozások eredményül kapott időtartamának megfelelően változik. Ez lehetővé teszi, hogy az újraküldési idő dinamikusan alkalmazkodjon a különböző hálózati feltételekhez. |
maxTransferWindowSize | A puffer maximális méretét meghatározó egész szám. Az érvényes értékek 1 és 4096 közöttiek. Az ügyfélen ez az attribútum határozza meg a megbízható csatorna által a fogadó által még nem nyugtázott üzenetek tárolására használt puffer maximális méretét. A kvóta egysége egy üzenet. Ha a puffer megtelt, a további SEND műveletek le lesznek tiltva. A fogadóban ez az attribútum határozza meg a csatorna által az alkalmazásnak még el nem küldött bejövő üzenetek tárolására használt puffer maximális méretét. Ha a puffer megtelt, a fogadó csendesen elveti a további üzeneteket, és az ügyfélnek újraküldésre van szüksége. |
rendezett | Logikai érték, amely megadja, hogy az üzenetek biztosan az elküldött sorrendben érkezzenek-e meg. Ha ez a beállítás , az false üzenetek sorrenden kívül érkezhetnek. A mező alapértelmezett értéke: true . |
reliableMessagingVersion | Egy érvényes érték, ReliableMessagingVersion amely megadja a használni kívánt WS-ReliableMessaging verziót. |
Gyermekelemek
None
Szülőelemek
Elem | Leírás |
---|---|
<Kötelező> | Meghatározza az egyéni kötés összes kötési képességét. |
Megjegyzések
A megbízható munkamenetek megbízható üzenetkezelést és munkameneteket biztosítanak. A megbízható üzenetkezelés újrapróbálkozásokat tesz a sikertelen kommunikációra, és lehetővé teszi a kézbesítési biztosítékok megadását, például az üzenetek érkezésének sorrendjét. A munkamenetek fenntartják az ügyfelek állapotát a hívások között. Ez az elem igény szerint rendezett üzenetkézbesítést is biztosít. Ez a megvalósított munkamenet a SOAP és a közlekedési közvetítők között is áthaladhat.
Minden kötéselem egy feldolgozási lépést jelöl az üzenetek küldésekor vagy fogadásakor. Futásidőben a kötéselemek hozzák létre azokat a csatornagyárakat és figyelőket, amelyek az üzenetek küldéséhez és fogadásához szükséges kimenő és bejövő csatornavermek létrehozásához szükségesek. A reliableSession
nem kötelező réteget biztosít a veremben, amely megbízható munkamenetet hozhat létre a végpontok között, és konfigurálhatja ennek a munkamenetnek a viselkedését.
További információt a Reliable Sessions (Megbízható munkamenetek) című témakörben talál.
Példa
Az alábbi példa bemutatja, hogyan konfigurálhat egyéni kötést különböző átviteli és üzenetkódolási elemekkel, különösen a megbízható munkamenetek engedélyezésével, amely fenntartja az ügyfél állapotát, és megadja a rendelés szerinti kézbesítési biztosítékokat. Ez a funkció az ügyfél és a szolgáltatás alkalmazáskonfigurációs fájljaiban van konfigurálva. A példa a szolgáltatáskonfigurációt mutatja be.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- This endpoint is exposed at the base address provided by host: http://localhost/servicemodelsamples/service.svc -->
<!-- specify customBinding binding and a binding configuration to use -->
<endpoint address=""
binding="customBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- The mex endpoint is exposed at http://localhost/servicemodelsamples/service.svc/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<!-- custom binding configuration - configures HTTP transport, reliable sessions -->
<bindings>
<customBinding>
<binding name="Binding1">
<reliableSession />
<security authenticationMode="SecureConversation"
requireSecurityContextCancellation="true">
</security>
<compositeDuplex />
<oneWay />
<textMessageEncoding messageVersion="Soap12WSAddressing10"
writeEncoding="utf-8" />
<httpTransport authenticationScheme="Anonymous"
bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
proxyAuthenticationScheme="Anonymous"
realm=""
useDefaultWebProxy="true" />
</binding>
</customBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: