DeliveryFailure 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为从队列读取的消息指定可能的传递失败类型。
public enum class DeliveryFailure
public enum DeliveryFailure
type DeliveryFailure =
Public Enum 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 队列处理消息传输失败。