使用 AMQPLite dotnet 库(AMQP 1.0)连接到 Solace 主题时遇到 sasl 异常

问题描述 投票:0回答:1

当我尝试在 C# 代码中使用 AMQP 发送/发布消息时,遇到错误。 下面是错误: {错误(条件:amqp:未实现,描述:sasl-mechanisms(sasl-server-mechanisms:[匿名]))}

下面是部分代码,Connect()方法是一个内部方法,负责创建AMQP连接会话并连接到Solace。

此方法抛出异常。

BrokerQueue 是我打算向其发送消息的主题。

public void Send(string text)
{
 Connect();
 var sender = new Amqp.SenderLink(session, BrokerQueue);
 sender.Send(text);
}

连接到 Solace 主机时,似乎出现了与 SASL 相关的错误。 我正在使用非安全 amqp 静态连接字符串,如下所示。

amqp://默认:默认@:5673/

5673 是我的主机为 AMQP 协议公开的端口号。 我确信我的代码可以工作,因为当我将其更改为连接到 Azure 服务总线队列时,它确实可以工作。 不知道如何解决这个问题,如果我能得到任何线索,我将非常感激,谢谢!

.net .net-core amqp solace solace-mq
1个回答
0
投票

您是否验证了 ANONYMOUS 机制对于您的代理配置是否正确?如果您使用用户名/密码,那么您可能需要使用 PLAIN。这是来自此处的安慰文档:https://docs.solace.com/API/AMQP/Client-Support.htm

AMQP 使用简单身份验证和安全层 (SASL) 进行身份验证。事件代理支持 ANONYMOUS、PLAIN 和 EXTERNAL SASL 机制。

  • Solace 基本身份验证类型为 none 时必须使用 ANONYMOUS 机制。
  • PLAIN 机制必须用于内部、LDAP 或 Radius 的 Solace 基本身份验证类型。在这种情况下,sasl.init 帧的 authcid 和密码字段用于建立身份。
  • 必须使用 EXTERNAL 机制进行 Solace 客户端证书身份验证。在这种情况下,身份是通过正常方式提供的客户端证书的字段建立的。
© www.soinside.com 2019 - 2024. All rights reserved.