2016-01-06 63 views
1

我創建了一個簡單的傳奇原型項目與RabbitMQ作爲傳輸和RavenDB作爲持久性機制。原型實際運行符合預期,但每隔幾秒鐘,我收到此錯誤信息:原型項目與RabbitMQ + RavenDB重複SharedQueue關閉錯誤從RabbitMQ

錯誤NServiceBus.Transports.RabbitMQ.RabbitMqDequeueStrategy未能收到消息[大會] .Retries System.AggregateException:出現一個或多個錯誤。 - > System.IO.EndOfStreamException:SharedQueue在RabbitMQ.Util.SharedQueue 1.EnsureIsOpen() at RabbitMQ.Util.SharedQueue關閉 1.Dequeue(INT 32毫秒超時.......

我也得到幾乎相同的消息立即在上述一個以下但它說,它無法從RabbitMGPoller.Timeouts

除了收到消息,有恆定的INFO消息是說: NServiceBus.Transports.RabbitMQ.RabbitMqConnectionManager斷開從RabbitMQ的經紀人,原因是:AMQP近距離原因,發起圖書館,code = 0 text =「流結束」... cause = System.IOException:無法將數據寫入傳輸連接:現有連接被遠程主機強制關閉---> System.Net.S ockets.SocketException:現有的連接被遠程主機強制關閉...

我已經嘗試向傳輸連接添加DequeueTimeout = 600值,但仍然會出現相同的錯誤。我也嘗試在配置文件中添加以下密鑰,但它似乎仍然沒有幫助。

回答

0

我終於想通了,只是我缺少的RabbitMQ和NServiceBus的理解。我將RabbitMQ連接的RequestedHeartbeat值更改爲更大的值,即RequestedHeartbeat = 6000。這解決了我的問題。