question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Incompatible with RabbitMQ.Client 5.0.1

See original GitHub issue

After upgrading RabbitMQ.Client to latest stable version (which according to NuGet is 5.0.1 at the time of reporting) and using latest EasyNetQ 2.0.4, I get following exception when registering new Bus:

 Method not found: 'Void RabbitMQ.Client.ConnectionFactory.set_uri(System.Uri)'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.MissingMethodException: Method not found: 'Void RabbitMQ.Client.ConnectionFactory.set_uri(System.Uri)'.

Full stack trace

[MissingMethodException: Method not found: 'Void RabbitMQ.Client.ConnectionFactory.set_uri(System.Uri)'.]
   EasyNetQ.ConnectionFactoryWrapper..ctor(ConnectionConfiguration connectionConfiguration, IClusterHostSelectionStrategy`1 clusterHostSelectionStrategy) +0

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
   System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +241
   EasyNetQ.DefaultServiceProvider.CreateServiceInstance(Type implementationType) +131
   EasyNetQ.DefaultServiceProvider.Resolve() +248

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
   System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +87
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +101
   EasyNetQ.DefaultServiceProvider.Resolve(Type serviceType) +126
   EasyNetQ.DefaultServiceProvider.<CreateServiceInstance>b__8_0(ParameterInfo parameterInfo) +25
   System.Linq.WhereSelectArrayIterator`2.MoveNext() +58
   System.Linq.Buffer`1..ctor(IEnumerable`1 source) +133
   System.Linq.Enumerable.ToArray(IEnumerable`1 source) +77
   EasyNetQ.DefaultServiceProvider.CreateServiceInstance(Type implementationType) +111
   EasyNetQ.DefaultServiceProvider.Resolve() +248

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
   System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +87
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +101
   EasyNetQ.DefaultServiceProvider.Resolve(Type serviceType) +126
   EasyNetQ.DefaultServiceProvider.<CreateServiceInstance>b__8_0(ParameterInfo parameterInfo) +25
   System.Linq.WhereSelectArrayIterator`2.MoveNext() +58
   System.Linq.Buffer`1..ctor(IEnumerable`1 source) +200
   System.Linq.Enumerable.ToArray(IEnumerable`1 source) +77
   EasyNetQ.DefaultServiceProvider.CreateServiceInstance(Type implementationType) +111
   EasyNetQ.DefaultServiceProvider.Resolve() +248
   EasyNetQ.RabbitHutch.CreateBus(ConnectionConfiguration connectionConfiguration, AdvancedBusEventHandlers advancedBusEventHandlers, Action`1 registerServices) +287
   EasyNetQ.RabbitHutch.CreateBus(String hostName, UInt16 hostPort, String virtualHost, String username, String password, UInt16 requestedHeartbeat, AdvancedBusEventHandlers advancedBusEventHandlers, Action`1 registerServices) +287
   EasyNetQ.RabbitHutch.CreateBus(String hostName, UInt16 hostPort, String virtualHost, String username, String password, UInt16 requestedHeartbeat, Action`1 registerServices) +152
   // my method // +120

It seems that EasyNetQ is using deprecated properties of RabbitMQ-s ConnectionFactory (although RabbitMQ-s changelog says that uri and Uri setters in ConnectionFactory were made obsolete, they’re actually removed and readded so that final state is that instead of public property uri which EasyNetQ is using there is now a private field uri).

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:8 (5 by maintainers)

github_iconTop GitHub Comments

2reactions
mantasaudickascommented, Aug 3, 2017

Usually major version increment is done when there are incompatible changes. So it is always good idea to restrict library to one single major version. The point is that when you upgrade EasyNetQ to support version RabbitMQ.Client 5, it wont be compatible with version 4… so restrictions to new release should be added anyway.

0reactions
zidadcommented, Oct 12, 2017

@tasoss you can use the latest pre-release for RMQ 5.0.

Unfortunately we’re unable to build a stable release now as Ninject doesn’t have a stable 4x release yet, which is blocking the building of our stable packages with the current process. https://www.nuget.org/packages/ninject

Read more comments on GitHub >

github_iconTop Results From Across the Web

The RabbitMQ .NET client is an implementation ...
NET client is an implementation of an AMQP 0-9-1 client library for C# (and, implicitly, other .NET languages). Release Series. The following table...
Read more >
RabbitMQ DotNet for VisualStudio 2013
1'. Successfully uninstalled 'RabbitMQ.Client 5.0.1'. Install failed. Rolling back… Install-Package : Could not install package 'RabbitMQ ...
Read more >
RabbitMQ.Client 6.5.0
The RabbitMQ .NET client is the official client library for C# (and, implicitly, other .NET languages). Product, Versions Compatible and additional computed ...
Read more >
RabbitMQ and ServiceStack Compatibility? - Rabbit MQ
Client version different? I tried several of the other client libraries with same results, just seems to be 5.0.1 that's working well.
Read more >
nuget - Could not install package '--'. You are trying to ...
Your package targets NETFramework,Version=v4.5.2. That means the assembly folder is lib\net452. You are trying to install the package to a ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found