DeliveryFailure DeliveryFailure DeliveryFailure DeliveryFailure Enum

Определение

Задает возможные типы сбоя доставки для сообщения, прочитанного из очереди.Specifies the possible types of delivery failure for a message read from the queue.

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

Поля

AccessDenied AccessDenied AccessDenied AccessDenied 32772

Отправитель не обладает правами доступа для размещения сообщений в очереди назначения.The sender does not have access rights to place messages in the destination queue.

BadDestinationQueue BadDestinationQueue BadDestinationQueue BadDestinationQueue 32768

Очередь назначения не найдена.The destination queue was not found.

BadEncryption BadEncryption BadEncryption BadEncryption 32775

Диспетчер очереди назначения не может расшифровать сообщение.The destination queue manager cannot decrypt the message.

BadSignature BadSignature BadSignature BadSignature 32774

Диспетчер очереди назначения не может проверить подлинность сообщения, так как прикрепленная сигнатура недействительна.The destination queue manager cannot authenticate the message because the attached signature is invalid.

CouldNotEncrypt CouldNotEncrypt CouldNotEncrypt CouldNotEncrypt 32776

Диспетчер исходной очереди не может зашифровать сообщение.The source queue manager cannot encrypt the message.

HopCountExceeded HopCountExceeded HopCountExceeded HopCountExceeded 32773

Число прыжков сообщения превышено, что означает число промежуточных серверов.The message hop count was exceeded, which indicates the number of intermediate servers.

NotTransactionalMessage NotTransactionalMessage NotTransactionalMessage NotTransactionalMessage 32778

Нетранзакционное сообщение отправлено в транзакционную очередь.A nontransactional message was sent to a transactional queue.

NotTransactionalQueue NotTransactionalQueue NotTransactionalQueue NotTransactionalQueue 32777

Транзакционное сообщение отправлено в нетранзакционную очередь.A transactional message was sent to a nontransactional queue.

Purged Purged Purged Purged 32769

Сообщение было очищено до достижения очереди назначения.The message was purged before reaching the destination queue.

QueueDeleted QueueDeleted QueueDeleted QueueDeleted 49152

Очередь назначения была удалена, прежде чем сообщение могло быть доставлено в приложение.The destination queue was deleted before the message could be delivered to the application.

QueueExceedMaximumSize QueueExceedMaximumSize QueueExceedMaximumSize QueueExceedMaximumSize 32771

Сообщение не было доставлено, так как очередь назначения переполнена.The message was not delivered because the destination queue is full.

QueuePurged QueuePurged QueuePurged QueuePurged 49153

Очередь была очищена и сообщение больше не существует.The queue was purged and the message no longer exists.

ReachQueueTimeout ReachQueueTimeout ReachQueueTimeout ReachQueueTimeout 32770

Сообщение не достигло очереди назначения до истечения времени ожидания.The message did not reach the destination queue before timing out.

ReceiveTimeout ReceiveTimeout ReceiveTimeout ReceiveTimeout 49154

Сообщение не было доставлено в приложение вовремя.The message was not delivered to the application on time.

Unknown Unknown Unknown Unknown 0

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

Примеры

Приведенный ниже пример показывает, как получить доступ к объекту DeliveryFailure сообщения в рамках операции службы.The example below shows how to access the DeliveryFailure of a message within a service operation.

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, чтобы определить, почему произошел сбой доставки сообщения и оно было отправлено в очередь недоставленных сообщений.You can get the DeliveryFailure property to determine why a message failed delivery and was sent to the dead-letter queue. Дополнительные сведения об обработке сообщений в очереди недоставленных сообщений см. в разделе Использование очередей недоставленных писем для обработки ошибокпри обмене сообщениями.For additional information about message processing in a dead-letter queue, see Using Dead-Letter Queues to Handle Message Transfer Failures.

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

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