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


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

Определение

Задает возможные типы сбоя доставки для сообщения, прочитанного из очереди.

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

Поля

AccessDenied 32772

Отправитель не обладает правами доступа для размещения сообщений в очереди назначения.

BadDestinationQueue 32768

Очередь назначения не найдена.

BadEncryption 32775

Диспетчер очереди назначения не может расшифровать сообщение.

BadSignature 32774

Диспетчер очереди назначения не может проверить подлинность сообщения, так как прикрепленная сигнатура недействительна.

CouldNotEncrypt 32776

Диспетчер исходной очереди не может зашифровать сообщение.

HopCountExceeded 32773

Число прыжков сообщения превышено, что означает число промежуточных серверов.

NotTransactionalMessage 32778

Нетранзакционное сообщение отправлено в транзакционную очередь.

NotTransactionalQueue 32777

Транзакционное сообщение отправлено в нетранзакционную очередь.

Purged 32769

Сообщение было очищено до достижения очереди назначения.

QueueDeleted 49152

Очередь назначения была удалена, прежде чем сообщение могло быть доставлено в приложение.

QueueExceedMaximumSize 32771

Сообщение не было доставлено, так как очередь назначения переполнена.

QueuePurged 49153

Очередь была очищена и сообщение больше не существует.

ReachQueueTimeout 32770

Сообщение не достигло очереди назначения до истечения времени ожидания.

ReceiveTimeout 49154

Сообщение не было доставлено в приложение вовремя.

Unknown 0

Произошла неизвестная ошибка.

Примеры

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

public void SimpleSubmitPurchaseOrder(PurchaseOrder po)
{
    Console.WriteLine("Submitting purchase order did not succeed ", po);
    MsmqMessageProperty mqProp = OperationContext.Current.IncomingMessageProperties[MsmqMessageProperty.Name] as MsmqMessageProperty;

    Console.WriteLine("Message Delivery Status: {0} ", mqProp.DeliveryStatus);
    Console.WriteLine("Message Delivery Failure: {0}", mqProp.DeliveryFailure);
    Console.WriteLine();
}
<OperationBehavior(TransactionScopeRequired := True, TransactionAutoComplete := True)> _
Public Sub SimpleSubmitPurchaseOrder(ByVal po As PurchaseOrder)
    Console.WriteLine("Submitting purchase order did not succeed ", po)
    Dim mqProp As MsmqMessageProperty = TryCast(OperationContext.Current.IncomingMessageProperties(MsmqMessageProperty.Name), MsmqMessageProperty)

    Console.WriteLine("Message Delivery Status: {0} ", mqProp.DeliveryStatus)
    Console.WriteLine("Message Delivery Failure: {0}", mqProp.DeliveryFailure)
    Console.WriteLine()
End Sub

Комментарии

Можно вернуть свойство DeliveryFailure, чтобы определить, почему произошел сбой доставки сообщения и оно было отправлено в очередь недоставленных сообщений. Дополнительные сведения об обработке сообщений в очереди недоставленных сообщений см. в статье Использование очередей Dead-Letter для обработки сбоев передачи сообщений.

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

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