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


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

Определение

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

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

Поля

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

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

BadDestinationQueue 32768

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

Purged 32769

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

ReachQueueTimeout 32770

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

QueueExceedMaximumSize 32771

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

AccessDenied 32772

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

HopCountExceeded 32773

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

BadSignature 32774

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

BadEncryption 32775

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

CouldNotEncrypt 32776

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

NotTransactionalQueue 32777

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

NotTransactionalMessage 32778

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

QueueDeleted 49152

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

QueuePurged 49153

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

ReceiveTimeout 49154

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

Примеры

В приведенном ниже примере показано, как получить доступ к 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 для обработки сбоев передачи сообщений".

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

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