gpt4 book ai didi

c# - .NET 上的 Apache NMS 无法连接到 ActiveMQ [ channel 处于非事件状态的时间过长]

转载 作者:行者123 更新时间:2023-11-30 23:27:28 30 4
gpt4 key购买 nike

我正在尝试从 .NET 应用程序订阅 ActiveMQ 主题,下面是我的代码(我使用 Apache NMS 1.7.0):

using Apache.NMS;
using Apache.NMS.ActiveMQ;
...

public void Start()
{
try {
// connect to ActiveMQ
long timestamp = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
string providerUrl = String.Format("tcp://{0}:{1}", Host, Port);
IConnectionFactory connectionFactory = new ConnectionFactory(providerUrl);

connection = connectionFactory.CreateConnection(); // fails here
connection.ClientId = String.Format("{0}/{1}/{2}", AssemblyInfo.Title, Username, timestamp);
connection.Start();

// create consumer and register callback for incoming messages
ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
IMessageConsumer messageConsumer = session.CreateConsumer(
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(TopicName), MessageSelector, false
);

messageConsumer.Listener += new MessageListener(OnMessage);
} catch (Exception e) {
_.Logger.Error(Resources.ErrorStartingConsumer, e.Message);
}
}

public void OnMessage(IMessage message)
{
if (!(message is ITextMessage)) {
// 'message' is not a text message
_.Logger.Warn(Resources.SkippedMessage, message.NMSMessageId);
} else {
string textMessage = (message as ITextMessage).Text;
foreach (string acceptedProtocol in AcceptedProtocols) {
if (textMessage.StartsWith(acceptedProtocol + ":")) {
// process message here
return;
}
}

// the url contained in 'message' is not supported
_.Logger.Warn(Resources.SkippedMessage, message.NMSMessageId);
}
}

上面的代码编译成功...但是尝试连接到 ActiveMQ 服务器失败。以下是失败的声明...

connection = connectionFactory.CreateConnection(); 

...这是错误信息:

Channel was inactive for too long: tcp://172.16.126.194:61615

我有点困惑,因为我收到这个错误,即使这是我的客户端第一次尝试连接 ActiveMQ 服务器。

我也试过设置wireformat.maxinactivityduration=0,但没办法。非常感谢任何帮助。

最佳答案

在我的例子中,我使用了错误的端口号来访问代理。我必须使用安全端口 61616。

关于c# - .NET 上的 Apache NMS 无法连接到 ActiveMQ [ channel 处于非事件状态的时间过长],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36556149/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com