ReceiveErrorHandling Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает обработку подозрительных сообщений.
public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling =
Public Enum 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 свойство одному из значений этого перечисления.