DeliveryFailure 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
針對從佇列讀取的訊息指定可能的傳遞失敗類型。
public enum class DeliveryFailure
public enum DeliveryFailure
type DeliveryFailure =
Public Enum 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 佇列來處理訊息傳輸失敗。