ReceiveErrorHandling Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje zpracování poškozených zpráv.
public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling =
Public Enum ReceiveErrorHandling
- Dědičnost
Pole
Drop | 1 | Tato možnost zahodí zprávu o jedu. Zpráva se nikdy nedoručí do aplikace. Pokud hodnota TTL zprávy už v tomto okamžiku vypršela, může se zpráva zobrazit ve frontě nedoručených zpráv odesílatele. Pokud ne, zpráva se nikde nezobrazí. Tato možnost indikuje, že uživateli je ve skutečnosti jedno, jestli je zpráva ztracena. |
Fault | 0 | Tato možnost odešle chybu do naslouchacího procesu, která způsobila chybu ServiceHost. Aby aplikace mohl pokračovat ve zpracování zpráv z fronty, musí být zpráva odebrána z fronty aplikace nějakým externím mechanismem. |
Move | 3 | Tím přesunete otrávenou zprávu do fronty poškozených zpráv pro pozdější zpracování pomocí aplikace pro zpracování poškozených zpráv. |
Reject | 2 | To dává službě MSMQ pokyn, aby odeslala záporné potvrzení zpět do správce fronty odesílání, že aplikace nemůže zprávu přijímat. Zpráva se umístí do fronty nedoručených zpráv správce odesílající fronty. |
Příklady
Následující konfigurační kód ukazuje, jak nastavit tuto vlastnost v konfiguračním souboru služby:
<configuration>
<appSettings>
<!-- use appSetting to configure MSMQ queue name -->
<add key="queueName" value=".\private$\ServiceModelSamplesPoison" />
<add key="baseAddress" value="http://localhost:8000/orderProcessor/poisonSample"/>
</appSettings>
<system.serviceModel>
<services>
<service
name="Microsoft.ServiceModel.Samples.OrderProcessorService">
<!-- Define NetMsmqEndpoint -->
<endpoint address="net.msmq://localhost/private/ServiceModelSamplesPoison"
binding="netMsmqBinding"
bindingConfiguration="PoisonBinding"
contract="Microsoft.ServiceModel.Samples.IOrderProcessor" />
</service>
</services>
<bindings>
<netMsmqBinding>
<binding name="PoisonBinding"
receiveRetryCount="0"
maxRetryCycles="1"
retryCycleDelay="00:00:05"
receiveErrorHandling="Fault"
/>
</netMsmqBinding>
</bindings>
</system.serviceModel>
</configuration>
Poznámky
Jedovatá zpráva je zpráva, která selže při opakovaných pokusech o doručení do aplikace. To platí pouze při použití vazby založené na službě Řízení front zpráv (MSMQ). Výchozí hodnota je Fault
, což způsobuje chybu naslouchacího procesu a tedy servicehost. V případě, že služba měla chybu kvůli jedovaté zprávě, MsmqPoisonMessageException je vyvolán . Výjimka obsahuje LookupId
zprávu MSMQ, kterou lze použít k přesunutí zprávy z cesty pomocí rozhraní SYSTEM.Messaging API. Určité hodnoty výčtu ReceiveErrorHandling , například Reject
a Move
jsou k dispozici pouze v systému Windows Vista. Zpracování zpráv s poškozenými je možné řídit nastavením ReceiveErrorHandling vlastnosti na jednu z hodnot tohoto výčtu.