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í pro otrávené zprávy.
public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling =
Public Enum ReceiveErrorHandling
- Dědičnost
Pole
| Name | Hodnota | Description |
|---|---|---|
| Fault | 0 | Tato možnost odešle naslouchacímu procesu chybu, která způsobila chybu ServiceHost. Aby aplikace mohla dál zpracovávat zprávy z fronty, musí být zpráva z fronty odebrána některým externím mechanismem. |
| Drop | 1 | Tato možnost zahodí zprávu. Zpráva se do aplikace nikdy nedoručí. Pokud hodnota TTL zprávy v tuto chvíli vypršela, může se zpráva zobrazit ve frontě nedoručených dopisů odesílatele. Pokud ne, zpráva se nikde nezobrazí. Tato možnost označuje, že uživatel je velmi nezajímá, pokud dojde ke ztrátě zprávy. |
| Reject | 2 | To dává MSMQ pokyn, aby odeslal negativní potvrzení zpět správci odesílající fronty, že zprávu nemůže aplikace přijímat. Zpráva se umístí do fronty nedoručených zpráv správce odesílané fronty fronty. |
| Move | 3 | Tím přesunete zprávu o jedu do fronty otrávených zpráv pro pozdější zpracování pomocí aplikace pro zpracování otrávených zpráv. |
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á se nezdaří opakovanými pokusy 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, která chybuje naslouchací proces a proto ServiceHost. V případě, že služba byla chybná kvůli otrávené zprávě, MsmqPoisonMessageException je vyvolán. Výjimka obsahuje LookupId zprávu MSMQ, která se dá použít k přesunutí zprávy mimo cestu pomocí rozhraní System.Messaging API. Některé hodnoty výčtu ReceiveErrorHandling , například Reject a Move jsou k dispozici pouze v systému Windows Vista. Zpracování otrávené zprávy řídíte nastavením ReceiveErrorHandling vlastnosti na jednu z hodnot tohoto výčtu.