ReceiveErrorHandling ReceiveErrorHandling ReceiveErrorHandling ReceiveErrorHandling Enum

Определение

Задает обработку подозрительных сообщений.Specifies handling for poison messages.

public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling = 
Public Enum ReceiveErrorHandling
Наследование
ReceiveErrorHandlingReceiveErrorHandlingReceiveErrorHandlingReceiveErrorHandling

Поля

Drop Drop Drop Drop 1

Этот параметр отбрасывает подозрительное сообщение.This option drops the poison message. Сообщение не доставляется в приложение.The message never gets delivered to the application. Если к этому моменту срок жизни сообщения уже истек, сообщение может появиться в очереди недоставленных сообщений отправителя.If the message's TTL had already expired at this point, then the message may appear in the sender's Dead Letter Queue. Если не истекло, сообщение нигде не появляется.If not, the message does not appear anywhere. Этот параметр указывает, что пользователю неважно, потеряно ли сообщение.This option indicates that the user does not really care if the message is lost.

Fault Fault Fault Fault 0

Этот параметр отправляет ошибку прослушивателю, который привел к сбою ServiceHost.This option sends a fault to the listener that caused the ServiceHost to fault. Сообщение должно быть удалено из очереди приложения при помощи внешнего механизма, прежде чем приложение сможет продолжить обрабатывать сообщения очереди.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

Подозрительное сообщение перемещается в очередь подозрительных сообщений для дальнейшей обработки приложением для обработки подозрительных сообщений.This moves the poison message to a Poison Message Queue for later processing by a poison message handling application.

Reject Reject Reject Reject 2

Тем самым очереди сообщений (MSMQ) дается указание отправлять диспетчеру передающей очереди уведомление о том, что сообщение не может быть получено приложением.This instructs MSMQ to send a negative acknowledgement back to the sending queue manager that the message cannot be received by the application. Сообщение помещается в очередь недоставленных сообщений диспетчера передающей очереди.The message is placed in the sending queue manager's Dead Letter Queue.

Примеры

В следующем коде конфигурации показано, как задать это свойство в файле конфигурации службы.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>

Комментарии

Подозрительным сообщением является сообщение, которое не позволяет повторить попытку доставки в приложение.A poison message is a message that fails repeated attempts to deliver to the application. Это применимо только при использовании привязки, основанной на очереди сообщений (MSMQ).This is applicable only when using a Message Queuing (MSMQ)-based binding. Значение по умолчанию — Fault, при котором создается ошибка прослушивателя и, следовательно, ServiceHost.The default value is Fault, which faults the listener and therefore the ServiceHost. В случае возникновения ошибки в службе из-за подозрительного сообщения выдается исключение MsmqPoisonMessageException.In the case where the service was to fault because of a poison message, a MsmqPoisonMessageException is thrown. Исключение содержит идентификатор LookupId сообщения MSMQ, который можно использовать для того, чтобы избавиться от сообщения с помощью API System.Messaging.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. Определенные значения перечисления ReceiveErrorHandling, такие как Reject и Move, доступны только в Windows VistaWindows Vista.Certain values of the ReceiveErrorHandling enumeration such as Reject and Move are only available on Windows VistaWindows Vista. Обработку подозрительных сообщений можно контролировать, задав для свойства ReceiveErrorHandling одно из значений этого перечисления.You control poison message handling by setting the ReceiveErrorHandling property to one of the values of this enumeration.

Применяется к

Дополнительно