.net 无法使用NMS连接到Amazon MQ代理

vsaztqbk  于 2023-02-10  发布在  .NET
关注(0)|答案(1)|浏览(205)

我在AWS上创建了一个代理,其中包含如下所示的端点列表:

amqp+ssl://b-***-1.mq.us-east-1.amazonaws.com:5671
ssl://b-***-1.mq.us-east-1.amazonaws.com:61617
stomp+ssl://b-***-1.mq.us-east-1.amazonaws.com:61614
mqtt+ssl://b-***-1.mq.us-east-1.amazonaws.com:8883

我尝试使用Apache.NMS.ActiveMQ调用.NET应用程序中的端点,但总是得到错误:

Apache.NMS.NMSConnectionException: 'No IConnectionFactory implementation found for connection URI: amqps://b***-1.mq.us-east-2.amazonaws.com:5671

这是我的申请表:

using System;
using System.Threading;
using Apache.NMS;
using Apache.NMS.Util;
using Apache.NMS.ActiveMQ;

namespace Apache.NMS.ActiveMQ.Test
{
  public class TestMain
  {
    public static void Main()
    {
        Uri connecturi = new Uri("amqp+ssl://b-***-1.mq.us-east-2.amazonaws.com:5671");
       
        Console.WriteLine("About to connect to " + connecturi);

        IConnectionFactory factory = new NMSConnectionFactory(connecturi);

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Apache.NMS.ActiveMQ" Version="2.0.0" />
  </ItemGroup>

</Project>

我为入站流量打开了端口,可以访问代理控制台。
我也试过amqp://b-***-1.mq.us-east-1.amazonaws.com:5671,但没有运气。
我可以使用以下命令成功地与本地服务器交互:

Uri connecturi = new Uri("tcp://localhost:61616?wireFormat.tightEncodingEnabled=true");

是不是少了什么?

wh6knrhe

wh6knrhe1#

您似乎正在尝试从.NET NMS.ActiveMQ openwire协议客户端连接到AMQP端点,但这肯定无法正常工作。您需要使用.NET AMQP客户端(如NMS.AMQP client),或者将您已经拥有的客户端指向Openwire端口(61617),并为该客户端使用正确的URI(“ssl://:“),当然,还需要进行必要的配置更改,以便客户端找到正确的SSL证书。

相关问题