Partager via


ReceiveErrorHandling Énumération

Définition

Spécifie la gestion des messages incohérents.

public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling = 
Public Enum ReceiveErrorHandling
Héritage
ReceiveErrorHandling

Champs

Drop 1

Cette option supprime le message incohérent, qui ne sera dès lors jamais remis à l'application. Si le TTL du message a déjà expiré à ce stade, le message peut apparaître dans la file d'attente de lettres mortes de l'expéditeur. Sinon, il n'apparaît nulle part. Cette option indique que l'utilisateur ne se soucie pas vraiment de la perte du message.

Fault 0

Cette option envoie une erreur à l'écouteur à l'origine de l'utilisation par défaut du ServicHost. Le message doit être supprimé de la file d'attente d'application par un mécanisme externe pour que l'application puisse continuer à traiter les messages de la file d'attente.

Move 3

Cette option déplace le message incohérent vers une file d'attente de messages incohérents en vue d'un traitement ultérieur par une application de gestion de messages incohérents.

Reject 2

Cette option demande au Message Queuing (MSMQ) d'envoyer un accusé de réception négatif au gestionnaire de files d'attente émetteur pour signaler que l'application ne peut pas recevoir le message. Le message est placé dans la file d'attente de lettres mortes du gestionnaire de files d'attente émetteur.

Exemples

Le code de configuration suivant montre comment définir cette propriété dans le fichier de configuration du service :

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

Remarques

Un message incohérent est un message qui échoue lors de tentatives répétées de remise à l’application. Cela vaut uniquement dans le cas de l’utilisation d’une liaison basée sur Message Queuing (MSMQ). La valeur par défaut est Fault, qui utilise par défaut l'écouteur et, par conséquent, le ServiceHost. Dans le cas où le service est utilisé par défaut à la suite d'un message incohérent, une MsmqPoisonMessageException est levée. L'exception contient l'LookupId du message MSMQ qui peut être utilisé pour déplacer le message à l'aide de l'API System.Messaging. Certaines valeurs de l’énumération ReceiveErrorHandling , telles que Reject et Move , ne sont disponibles que sur Windows Vista. Vous pouvez contrôler la gestion des messages incohérents en affectant une des valeurs de cette énumération à la propriété ReceiveErrorHandling.

S’applique à

Voir aussi