我不熟悉AMQP。我尝试将AmqpNetLite程序连接到Qpid服务器,但出现以下异常:Amqp.AmqpException: sasl-mechanism(sasl-server-mechanism:[CRAM-MD5,SCRAM-SHA-1,SCRAM-SHA-256])
注意:我可以连接到基本的AMQP服务器,但不能连接到QPID。
以下是创建连接的代码:
请告诉从哪里开始解决我的问题。
void Main(string[] args)
{
try
{
Address address = new Address("amqp://guest:guest@localhost:5672");
Connection connection = new Connection(address);
Session session = new Session(connection);
ReceiverLink receiver = new ReceiverLink(session, "receiver-link", "queue");
Message message = receiver.Receive();
receiver.Accept(message);
receiver.Close();
session.Close();
connection.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.ReadLine();
}
该错误似乎表示代理无法为客户端提供它支持的 SASL 机制。 我认为AmqpNetLite只做匿名,普通和外部,但也许已经改变了。 您可以查看代理配置,并使其中一种机制可供客户端使用,这可能会允许匹配和成功的身份验证。 或者,您可以使用SSL连接,然后允许这些SASL机制工作,并为您的连接提供一些额外的安全性。
Broker-J 文档站点的安全部分应该为您阐明这一点。