C# ActiveMQ未找到用于连接的IConnectionFactory实现
我已经在服务器上安装了ActiveMQ 5.13.0版本,并尝试使用C#client访问代理。我创建了一个控制台应用程序,并安装了Apache.NMS.ActiveMQ版本1.7.1 nuget包。当我尝试访问代理时:C# ActiveMQ未找到用于连接的IConnectionFactory实现,c#,activemq,C#,Activemq,我已经在服务器上安装了ActiveMQ 5.13.0版本,并尝试使用C#client访问代理。我创建了一个控制台应用程序,并安装了Apache.NMS.ActiveMQ版本1.7.1 nuget包。当我尝试访问代理时: Line 1 Uri uri = new Uri("tcp://192.168.110.136:61616"); Line 2 NMSConnectionFactory NMSFactory = new NMSConnectionFactory(uri); 在第二行,它没有
Line 1 Uri uri = new Uri("tcp://192.168.110.136:61616");
Line 2 NMSConnectionFactory NMSFactory = new NMSConnectionFactory(uri);
在第二行,它没有为连接URI抛出IConnectionFactory实现:tcp://192.168.110.136:61616/ 例外
Project的.NETFramework版本是3.5,我也尝试过.NET4.0和4.5。但是结果是一样的,抛出同样的异常
ActiveMQ正在服务器上运行,我可以使用telnet和管理UI访问服务器的61616端口。我查看了其他类似的帖子,但没有帮助解决问题。欢迎任何帮助
谢谢。首先,确保您的应用程序同时引用Apache.NMS.dll和Apache.NMS.ActiveMQ.dll程序集,以便访问所有实现位 然后尝试使用URI,该URI引用您正试图通过通用NMSConnectionFactory使用的提供程序实现:
Uri uri = new Uri("activemq:tcp://192.168.110.136:61616");
或者,您可以直接使用ActiveMQ IConnectionFactory实现:
IConnectionFactory factory = new Apache.NMS.ActiveMQ.ConnectionFactory(uri);
如果有人知道两者之间的区别,请解释
在我的项目中,我使用了非常旧的Apache.NMS.ActiveMQ版本(1.1),它附带了一个名为nmsprovider-ActiveMQ.config的文件
当我升级时,我遇到了与你观察到的相同类型的问题
我发现NMSConnectionFactory与早期版本不同
TL;DR:检查你是否有我提到的配置文件。编辑它(去掉.dll文件扩展名)或完全删除它(它可能不包含任何尚未硬编码到Apache.NMS程序集中的信息)使用ConnectionFactory NMSFactory=new ConnectionFactory(uri)时确定;它可以工作,而不是NMS连接工厂。如果有人知道两者之间的区别,请解释。谢谢。我的问题是没有引用Apache.NMS.ActiveMQ.dll。谢谢