WCF su Binding MSMQ. Come posso rilevare quando un messaggio viene spostato nella coda del veleno?

StackOverflow https://stackoverflow.com/questions/5431331

  •  12-11-2019
  •  | 
  •  

Domanda

Sto eseguendo un client WCF che invoca un servizio WCF tramite un msmqbinding. Framework è .NET 4.0, il client e il server vengono eseguiti su Windows Server 2008 R2. La coda del canale è transazionale.

Il servizio è ospitato con questi parametri di associazione: receiveErrorHandling="Move" receiveRetryCount="3" retryCycleDelay="00:00:20" maxRetryCycles="5"

Dato che ((riceviretryCount + 1) * (maxretrycycles + 1)) è in vigore, ciò comporterà 4 * 6 = 24 tentativi di un dato messaggio prima che venga spostato nel subqueue veleno.

Allegato un IerrorHandler al mio servizio noto che HandleRror viene chiamato con un MSMQPoisonMessageException per un totale di 6 volte (per un messaggio veleno), prima che il sottosistema WCF sposta finalmente il messaggio nella subqueue; veleno.

Voglio registrare il tempo preciso quando viene eseguito un messaggio e il messaggio viene spostato nella coda del veleno. Mi sembra che l'unica opzione sia contare il numero di volte in cui un determinato messaggio e confrontare questo conteggio con i maxretrycycles vincolanti. Questo è imbarazzante ed errori.

La mia domanda è:

  • C'è un modo per me di rilevare in modo conclusivo l'evento in cui il sottosistema WCF sposta il messaggio nella coda del veleno?

I miei riferimenti sono:http://msdn.microsoft.com/en-us/library/aa395218.aspx

E: http://consultingblog

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top