我在我們的項目中添加了一個新的工作人員角色來處理撥打電話。它吸引呼叫以取消服務巴士隊列。
我做了一個小小的控制檯應用程序,將事情放到隊列中,以便我可以檢查以確保它正常工作。不幸的是,似乎無論什麼被我的應用程序放入隊列中,都立即(或幾乎是即刻)放到死信隊列中。我看了一下隊列的屬性,我可以看到未收到來自Azure服務總線隊列的郵件
MessageCount 5
ActiveMessageCount 0
DeadLetterMessageCount 5
TransferMessageCount 0
AvailabilityStatus Available
EnableDeadLetteringOnMessageExpiration False
工作者角色試圖從隊列中取出東西,但它的所有內容都是空值。
隊列設置與我們正在工作的其他隊列相同。我要放入隊列的對象幾乎都是由所有基元組成的,標記爲[MessageContract]和[Serializable]。所有成員都標記爲[MessageHeader]。
我也嘗試過使用我們用於其他隊列的對象來查看會發生什麼,以及那一個也是死的。
我不明白。隨着隊列大小的增長,該對象顯然會進入隊列。但它只是立即死信,我不知道什麼可能會導致除了事情超時發生。
更多信息:使用服務總線瀏覽器進行了一次查看,並且由於MaxDeliveryCountExceeded,消息看起來似乎是死信。這似乎意味着,如果收到一條消息失敗超過10次,它會將其轉移到死信隊列中。所以部分解決了,但我在工作角色代碼中加入了一個調試點,並且在那裏沒有任何錯誤發生。我的
BrokeredMessage message = Client.Receive()
總是返回null,所以甚至沒有時間讓它做任何錯誤。我想在實際的Receive()調用中出現錯誤?
你能提供更多的代碼嗎?請說明您如何創建客戶端(發件人和接收者)以及如何將消息推送到隊列中。 – 2014-10-10 03:31:21