2016-09-07 93 views
3

隨着EasyNetQ v0.63.0.448,RabbitMqClient V4.0.2和RabbitMQ的服務器3.6.5當我嘗試創建像這樣總線...EasyNetQ現場未找到 'RabbitMQ.Client.ConnectionFactory.AutomaticRecoveryEnabled'

bus = RabbitHutch.CreateBus(new ConnectionConfiguration() 
      { 
       Hosts = new[] { new HostConfiguration() { Host = hostName, Port = port } }, 
       UserName = username, 
       Password = password, 
      }, x => { }).Advanced; 

,我發現了錯誤:

「現場未找到 'RabbitMQ.Client.ConnectionFactory.AutomaticRecoveryEnabled'。」

這是easynetq和這個版本的Rabbit之間的潛在不兼容問題,還是我需要反思某處API的改變?

回答

5

看起來EasyNetQ的版本是針對RabbitMQ的3.6.0版編譯的。在RabbitMQ的第4版中,AutomaticRecoveryEnabled和ConnectionFactory中的一些其他字段已更改爲屬性,這是一個突破性更改。

直到EasyNetQ重新編譯使用RabbitMQ版本4,您將不得不使用老版本的RabbitMQ - 3.6.5似乎爲我工作。

+0

這解決了它對我來說。 Nuget自動更新我的應用程序以使用RabbitMQ.Client 4.1.0,它不適用於我的應用程序。我回滾到3.6.5,一切都很好。 –

+0

這很不幸,因爲4.1版有一些嚴重的性能增強(https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/251)。 – pardahlman