DeliveryStatus 枚举


一个枚举,指定消息传递结果不确定或未传递消息时消息的传递状态。An enumeration that specifies the delivery status of a message when the delivery of the message is in doubt, or when the message was not delivered.

public enum class DeliveryStatus
public enum DeliveryStatus
type DeliveryStatus = 
Public Enum DeliveryStatus


InDoubt 0

消息传递结果不确定。The delivery of the message is in doubt.

NotDelivered 1

消息未被传递。The message was not delivered.


下面的示例演示如何访问服务操作中的消息的 DeliveryStatusThe following example shows how to access the DeliveryStatus 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);
<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)
End Sub


发送到队列的消息可能因为没有被传递或队列管理器不确定传递结果而进入死信队列。A message sent to a queue can land in a dead-letter queue because the message was not delivered or the Queue Manager is not sure of the delivery outcome. DeliveryStatus 是从死信队列中读取消息时获取消息传递状态的一种方式。The DeliveryStatus is a way to get the status of message delivery when the message is read from a dead-letter queue.