Condividi tramite


ReceiveErrorHandling Enumerazione

Definizione

Specifica la gestione dei messaggi non elaborabili.

public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling = 
Public Enum ReceiveErrorHandling
Ereditarietà
ReceiveErrorHandling

Campi

Drop 1

Questa opzione rilascia il messaggio non elaborabile. e non viene mai recapitato all'applicazione. Se a questo punto la durata (TTL) del messaggio è già scaduta, è possibile che il messaggio venga visualizzato nella coda di messaggi non recapitabili del mittente. In caso contrario, il messaggio non viene visualizzato mai. L'opzione indica che per l'utente non è importante se il messaggio va perso.

Fault 0

Viene inviato un errore al listener che ha determinato l'errore di ServiceHost. È necessario che il messaggio venga rimosso dalla coda dell'applicazione da un meccanismo esterno perché l'applicazione possa continuare a elaborare i messaggi in coda.

Move 3

Il messaggio non elaborabile viene spostato in una coda di messaggi non elaborabili per l'elaborazione successiva da parte di un'applicazione di gestione apposita.

Reject 2

Viene indicato al protocollo MSMQ di inviare al gestore delle code mittente un negative acknowledgment poiché il messaggio non può essere ricevuto dall'applicazione. Il messaggio viene inserito nella coda di messaggi non recapitabili del gestore delle code.

Esempio

Nel codice di configurazione seguente viene illustrato come impostare questa proprietà nel file di configurazione del servizio:

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

Commenti

Un messaggio non elaborabili è un messaggio che non riesce a recapitare all'applicazione tentativi ripetuti. Questo vale solo quando si utilizza un'associazione basata su Accodamento messaggi (MSMQ). Il valore predefinito è Fault, che genera un errore per il listener e quindi per ServiceHost. Se la causa dell'errore del servizio è un messaggio non elaborabile, viene generata un'eccezione MsmqPoisonMessageException. L'eccezione contiene il valore LookupId del messaggio MSMQ, che può essere utilizzato per spostare il messaggio tramite l'API System.Messaging. Alcuni valori dell'enumerazione ReceiveErrorHandling , Reject ad esempio e Move , sono disponibili solo in Windows Vista. Per controllare la gestione dei messaggi non elaborabili, impostare la proprietà ReceiveErrorHandling su uno dei valori di questa enumerazione.

Si applica a

Vedi anche