2015-02-24 224 views
0

我正在開發一個項目,我們希望使用ServiceBus(如經典隊列)來進行消息傳遞。我經常看到隊列中的消息,我無法得到。這些消息是活動的(不是死信)。我沒有收到任何異常,它等待超時,然後消息沒有任何問題。我已經檢查過消息的大小,但都小於1.5 KB。Azure服務總線問題

try 
... 
QueueClient _queueClient = QueueClient.CreateFromConnectionString(Properties.Settings.Default.ServiseBusConnectionString, Properties.Settings.Default.StatQueueName); 

var count = 1000; 

for (var i = 1; i <= count; i++) 
{ 
var message = _queueClient.Receive(); 
//timeout 
if (message == null) 
{ 
    //message is null :(
    continue; 
} 
} 
... 
catch 
+0

您是否嘗試過使用Azure ServiceBus資源管理器來檢索郵件? http://blogs.msdn.com/b/paolos/archive/2014/12/04/service-bus-explorer-2-5-now-available.aspx – viperguynaz 2015-02-24 03:43:39

回答

0

閱讀How to receive messages from a queue,並確保您使用_queueClient.Complete()_queueClient.Abandon()與每個消息來完成。

+0

是的,我完成或放棄了,我只展示了一部分的代碼。如果您在30秒超時時間內未執行此操作,則會將消息標記爲死信。 – AChudov 2015-02-24 05:35:08

+0

AFAIK隊列中的默認TTL是相當無限的(使用Visual Studio,您可以在DefaultMessageTimeToLive中看到10675199.02:48:05.4775807的值)。你可以在隊列中檢查這個值嗎? – ppatierno 2015-02-24 11:06:12