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 队列处理消息传输失败

适用于

另请参阅