Sdílet prostřednictvím


ReceiveErrorHandling Výčet

Definice

Určuje zpracování pro otrávené zprávy.

public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling = 
Public Enum ReceiveErrorHandling
Dědičnost
ReceiveErrorHandling

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.

Platí pro

Viz také