我正在運行一個WCF客戶端,通過MsmqBinding調用WCF服務。 Framework是.Net 4.0,客戶端和服務器在Windows Server 2008 R2上運行。 通道隊列是事務性的。WCF通過MSMQ綁定。如何檢測郵件何時移至毒性隊列?
服務託管與這些結合參數: receiveErrorHandling="Move" receiveRetryCount="3" retryCycleDelay="00:00:20" maxRetryCycles="5"
鑑於((ReceiveRetryCount + 1)*(MaxRetryCycles + 1))中的效果,這將導致 4 * 6 = 24個的重試在將其移至毒性子隊列之前的任何給定消息。
將IErrorHandler附加到我的服務我注意到,在wcf子系統最終將消息移動到;毒性子隊列之前,HandleError總共調用了6次(對於有毒消息)的MsmqPoisonMessageException。
我想記錄消息完成重試並將消息移動到毒性隊列的準確時間。在我看來,唯一的選擇是計算特定消息出錯的次數,並將該計數與綁定的MaxRetryCycles進行比較。這是尷尬和錯誤。
我的問題是:
- 有什麼辦法,我 確鑿檢測,其中 的WCF子系統移動消息 到有害隊列的事件?
我引用如下: http://msdn.microsoft.com/en-us/library/aa395218.aspx
編輯。 NM,原本在綁定中錯過了那3個。 – andrewbadera 2011-03-25 10:53:47
所以簡短的答案是:我無法檢測到這一舉動。本來希望有一些vcf伏都教;) – 2011-03-26 23:49:16