使用MassTransit我正在尝试使用AMQP连接器连接到ActiveMQ。 MassTransit配置为使用OpenWire连接器连接到端口61616。
使用以下命令为ActiveMq创建了一个本地容器
docker run --rm -d -p 5672:5672 -p 8161:8161 rmohr/activemq:5.15.6-alpine
现在,当我尝试连接到MassTransit时,我正在通过端口5672
var uriBuilder = new UriBuilder("amqp://localhost")
{
Port = 5672
};
var serviceBusHost = cfg.Host(
uriBuilder.Uri, settings =>
{
settings.Password(credentials[0]);
settings.Username(credentials[1]);
});
在activeMqBusFactory中使用上面的代码时,我遇到以下异常:MassTransit.ActiveMqTransport.ActiveMqTransportConfigurationException:'地址方案无效:amqp'
在将上面的代码更改为
var uriBuilder = new UriBuilder("activemq://localhost")
{
Port = 5672
};
var serviceBusHost = cfg.Host(
uriBuilder.Uri, settings =>
{
settings.Password(credentials[0]);
settings.Username(credentials[1]);
});
我没有例外,但webApp卡住了消息启动总线主机...连接:admin @ localhost:5672
只是为了澄清在运行docker容器时是否公开了端口61616并使用以下代码
var uriBuilder = new UriBuilder("activemq://localhost")
{
Port = 61616
};
var serviceBusHost = cfg.Host(
uriBuilder.Uri, settings =>
{
settings.Password(credentials[0]);
settings.Username(credentials[1]);
});
我可以使用OpenWire Connector连接到activeMQ。我正在寻找一种使用AMQP连接器进行连接的方法。
谢谢
查看MassTransit的源代码,您现在似乎无法使用AMQP连接到ActiveMQ代理。代码使用NMS.ActiveMQ库,它只是openwire所以你需要坚持使用它。作者需要支持AMQP作为协议连接器,使用类似AmqpNetLite客户端作为支持它的任何消息平台的通用AMQP连接器。