DeliveryFailure Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica os possíveis tipos de falha de entrega para uma mensagem lida da fila.
public enum class DeliveryFailure
public enum DeliveryFailure
type DeliveryFailure =
Public Enum DeliveryFailure
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| Unknown | 0 | Ocorreu um erro desconhecido. |
| BadDestinationQueue | 32768 | A fila de destino não foi encontrada. |
| Purged | 32769 | A mensagem foi apagada antes de chegar à fila de destino. |
| ReachQueueTimeout | 32770 | A mensagem não chegou à fila de destino antes de expirar. |
| QueueExceedMaximumSize | 32771 | A mensagem não foi entregue porque a fila de destino está cheia. |
| AccessDenied | 32772 | O remetente não tem direitos de acesso para colocar mensagens na fila de destino. |
| HopCountExceeded | 32773 | A contagem de salto de mensagens foi ultrapassada, o que indica o número de servidores intermédios. |
| BadSignature | 32774 | O gestor da fila de destino não pode autenticar a mensagem porque a assinatura associada é inválida. |
| BadEncryption | 32775 | O gestor da fila de destino não pode desencriptar a mensagem. |
| CouldNotEncrypt | 32776 | O gestor de fila de origem não pode encriptar a mensagem. |
| NotTransactionalQueue | 32777 | Uma mensagem transacional era enviada para uma fila não transacional. |
| NotTransactionalMessage | 32778 | Uma mensagem não transacional era enviada para uma fila transacional. |
| QueueDeleted | 49152 | A fila de destino era eliminada antes de a mensagem poder ser entregue à aplicação. |
| QueuePurged | 49153 | A fila foi eliminada e a mensagem deixou de existir. |
| ReceiveTimeout | 49154 | A mensagem não foi entregue à candidatura a tempo. |
Exemplos
O exemplo abaixo mostra como aceder a uma DeliveryFailure mensagem dentro de uma operação de serviço.
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
Observações
Podes pedir à DeliveryFailure propriedade para determinar porque é que uma mensagem falhou na entrega e foi enviada para a fila de letras mortas. Para informações adicionais sobre o processamento de mensagens numa fila de letras mortas, veja Usar Dead-Letter Filas para Lidar com Falhas de Transferência de Mensagens.