我对AMQP不熟悉。 我尝试将AmqpNetLite程序连接到Qpid服务器,但出现以下异常: Amqp.AmqpException:sasl机制(sasl服务器机制:[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();
}
答案 0 :(得分:0)
该错误似乎表明代理无法向客户端提供其支持的SASL机制。我认为AmqpNetLite仅执行匿名,普通和外部,但也许已经改变了。您可以调查您的代理配置,并将这些机制之一提供给客户端,这可能会允许匹配并成功进行身份验证。或者,您可以使用SSL连接,这将允许那些SASL机制起作用,并为您的连接提供一些额外的安全性。
Broker-J文档站点的security section应该为您提供一些启发。