ReceiveErrorHandling Enumeración

Definición

Especifica el control de los mensajes dudosos.

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

Campos

Drop 1

Esta opción coloca el mensaje dudoso. El mensaje nunca se entrega a la aplicación. Si el TLL del mensaje ya ha expirado en este punto, el mensaje puede aparecer en la cola de mensajes no entregados del remitente. Si no, el mensaje no aparece en ningún sitio. Esta opción indica que al usuario realmente no le importa si se pierde el mensaje.

Fault 0

Esta opción envía un error al agente de escucha que provocó el error en ServiceHost. 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.

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.

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. El mensaje se coloca en la cola de mensajes no enviados del administrador de la cola emisora.

Ejemplos

El código de configuración siguiente muestra cómo establecer esta propiedad en el archivo de configuración de servicio:

<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 produce un error en los intentos repetidos de entregar a la aplicación. Esto sólo es aplicable al utilizar un enlace basado en Message Queuing (MSMQ). El valor predeterminado es Fault, que da error en el agente de escucha y, por consiguiente, en ServiceHost. En el caso en que el servicio da error debido a un mensaje dudoso, se inicia MsmqPoisonMessageException. La excepción contiene LookupId del mensaje de MSMQ que se puede utilizar para eliminar el mensaje utilizando System.Messaging API. Algunos valores de la ReceiveErrorHandling enumeración como Reject y Move solo están disponibles en Windows Vista. Puede controlar la administración de mensajes dudosos estableciendo la propiedad ReceiveErrorHandling en uno de los valores de esta enumeración.

Se aplica a

Consulte también