Поделиться через


ReceiveErrorHandling Перечисление

Определение

Указывает обработку подозрительных сообщений.

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

Поля

Имя Значение Описание
Fault 0

Этот параметр отправляет ошибку прослушивателю, который вызвал сбой ServiceHost. Сообщение должно быть удалено из очереди приложения каким-либо внешним механизмом, прежде чем приложение сможет продолжать обрабатывать сообщения из очереди.

Drop 1

Этот параметр удаляет отравляющее сообщение. Сообщение никогда не доставляется приложению. Если срок жизни сообщения уже истек на этом этапе, сообщение может появиться в очереди недоставленных писем отправителя. Если нет, сообщение не отображается нигде. Этот параметр указывает, что пользователь действительно не заботится, если сообщение потеряно.

Reject 2

Это указывает MSMQ отправить отрицательное подтверждение диспетчеру очередей отправки, что сообщение не может быть получено приложением. Сообщение помещается в очередь недоставленных писем диспетчера очередей.

Move 3

Это перемещает отравляющее сообщение в очередь подозрительных сообщений для последующей обработки с помощью приложения обработки подозрительных сообщений.

Примеры

В следующем коде конфигурации показано, как задать это свойство в файле конфигурации службы:

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

Комментарии

Отравляющее сообщение — это сообщение, которое завершается сбоем повторных попыток доставки в приложение. Это применимо только при использовании привязки на основе очереди сообщений (MSMQ). Значением по умолчанию является Faultпрослушиватель и, следовательно, ServiceHost. В случае, когда служба была виновата из-за отравляющего сообщения, MsmqPoisonMessageException возникает исключение. Исключение содержит LookupId сообщение MSMQ, которое можно использовать для перемещения сообщения из пути с помощью API System.Messaging. Некоторые значения перечисления ReceiveErrorHandling , такие как Reject и Move доступны только в Windows Vista. Вы управляете обработкой сообщений, задав ReceiveErrorHandling свойство одному из значений этого перечисления.

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

См. также раздел