ReceiveErrorHandling ReceiveErrorHandling ReceiveErrorHandling ReceiveErrorHandling Enum

Definición

Especifica el control de los mensajes dudosos.Specifies handling for poison messages.

public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling = 
Public Enum ReceiveErrorHandling
Herencia
ReceiveErrorHandlingReceiveErrorHandlingReceiveErrorHandlingReceiveErrorHandling

Campos

Drop Drop Drop Drop 1

Esta opción coloca el mensaje dudoso.This option drops the poison message. El mensaje nunca se entrega a la aplicación.The message never gets delivered to the application. Si el TLL del mensaje ya ha expirado en este punto, el mensaje puede aparecer en la cola de mensajes no entregados del remitente.If the message's TTL had already expired at this point, then the message may appear in the sender's Dead Letter Queue. Si no, el mensaje no aparece en ningún sitio.If not, the message does not appear anywhere. Esta opción indica que al usuario realmente no le importa si se pierde el mensaje.This option indicates that the user does not really care if the message is lost.

Fault Fault Fault Fault 0

Esta opción envía un error al agente de escucha que provocó el error en ServiceHost.This option sends a fault to the listener that caused the ServiceHost to fault. El mensaje debe ser eliminado de la cola de la aplicación por algún mecanismo externo antes de que la aplicación pueda continuar procesando los mensajes de la cola.The message must be removed from the application queue by some external mechanism before the application can continue to process messages from the queue.

Move Move Move Move 3

Mueve el mensaje dudoso a una cola de mensajes dudosos para ser procesado posteriormente por una aplicación de control de mensajes dudosos.This moves the poison message to a Poison Message Queue for later processing by a poison message handling application.

Reject Reject Reject Reject 2

Indica a (MSMQ) que devuelva una confirmación de que no se pudo realizar la acción al administrador de la cola emisora según la cual la aplicación no puede recibir el mensaje.This instructs MSMQ to send a negative acknowledgement back to the sending queue manager that the message cannot be received by the application. El mensaje se coloca en la cola de mensajes no enviados del administrador de la cola emisora.The message is placed in the sending queue manager's Dead Letter Queue.

Ejemplos

El código de configuración siguiente muestra cómo establecer esta propiedad en el archivo de configuración de servicio:The following configuration code illustrates how to set this property in the service configuration file:

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

Comentarios

Un mensaje dudoso es un mensaje que genera un error en los intentos de entrega a la aplicación.A poison message is a message that fails repeated attempts to deliver to the application. Esto sólo es aplicable al utilizar un enlace basado en Message Queuing (MSMQ).This is applicable only when using a Message Queuing (MSMQ)-based binding. El valor predeterminado es Fault, que da error en el agente de escucha y, por consiguiente, en ServiceHost.The default value is Fault, which faults the listener and therefore the ServiceHost. En el caso en que el servicio da error debido a un mensaje dudoso, se inicia MsmqPoisonMessageException.In the case where the service was to fault because of a poison message, a MsmqPoisonMessageException is thrown. La excepción contiene LookupId del mensaje de MSMQ que se puede utilizar para eliminar el mensaje utilizando System.Messaging API.The exception contains the LookupId of the MSMQ message that can be used to move the message out of the way using System.Messaging API. Ciertos valores de la enumeración ReceiveErrorHandling como Reject y Move sólo están disponibles en Windows VistaWindows Vista.Certain values of the ReceiveErrorHandling enumeration such as Reject and Move are only available on Windows VistaWindows Vista. Puede controlar la administración de mensajes dudosos estableciendo la propiedad ReceiveErrorHandling en uno de los valores de esta enumeración.You control poison message handling by setting the ReceiveErrorHandling property to one of the values of this enumeration.

Se aplica a

Consulte también: