共用方式為


DeliveryFailure 列舉

定義

針對從佇列讀取的訊息指定可能的傳遞失敗類型。

public enum class DeliveryFailure
public enum DeliveryFailure
type DeliveryFailure = 
Public Enum DeliveryFailure
繼承
DeliveryFailure

欄位

AccessDenied 32772

寄件者沒有將訊息放到目的佇列所需的存取權限。

BadDestinationQueue 32768

找不到目的佇列。

BadEncryption 32775

目的佇列管理員無法解密訊息。

BadSignature 32774

目的佇列管理員無法驗證訊息,因為附加的簽章 (Signature) 無效。

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 佇列來處理訊息傳輸失敗

適用於

另請參閱