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