Asp.net core System.TimeoutException:&x27;在PersistentChannel上请求的操作已使用EasyNetQ超时
我从RabbitMq开始,启动API时遇到问题。发生此错误:System.TimeoutException:“在PersistentChannel上请求的操作已超时” 我正在使用EasyNetQ RabbitMq在Docker容器中运行,该容器配置为设置:http:15672和ampq:56712。单击此处访问Rabbitmq,浏览器中不会出现任何问题 下面是设置的代码(目前为硬代码)。根据代码,尝试传递用户名和密码,但没有成功Asp.net core System.TimeoutException:&x27;在PersistentChannel上请求的操作已使用EasyNetQ超时,asp.net-core,rabbitmq,easynetq,Asp.net Core,Rabbitmq,Easynetq,我从RabbitMq开始,启动API时遇到问题。发生此错误:System.TimeoutException:“在PersistentChannel上请求的操作已超时” 我正在使用EasyNetQ RabbitMq在Docker容器中运行,该容器配置为设置:http:15672和ampq:56712。单击此处访问Rabbitmq,浏览器中不会出现任何问题 下面是设置的代码(目前为硬代码)。根据代码,尝试传递用户名和密码,但没有成功 protected override Task ExecuteAs
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
_bus = RabbitHutch.CreateBus("host=localhost:5672;username=guest;password=guest");
_bus.RespondAsync<UsuarioRegistradoIntegrationEvent, ResponseMessage>(async request =>
new ResponseMessage(await RegistrarCliente(request)));
return Task.CompletedTask;
}
ou
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
_bus = RabbitHutch.CreateBus("host=localhost:5672");
_bus.RespondAsync<UsuarioRegistradoIntegrationEvent, ResponseMessage>(async request =>
new ResponseMessage(await RegistrarCliente(request)));
return Task.CompletedTask;
}
ou
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
_bus = RabbitHutch.CreateBus("host=localhost");
_bus.RespondAsync<UsuarioRegistradoIntegrationEvent, ResponseMessage>(async request =>
new ResponseMessage(await RegistrarCliente(request)));
return Task.CompletedTask;
}
受保护的覆盖任务ExecuteAsync(CancellationToken stoppingToken)
{
_bus=RabbitHutch.CreateBus(“主机=localhost:5672;用户名=guest;密码=guest”);
_总线响应异步(异步请求=>
新的回复信息(等待注册人(请求));
返回Task.CompletedTask;
}
欧点
受保护的覆盖任务ExecuteAsync(CancellationToken stoppingToken)
{
_bus=RabbitHutch.CreateBus(“host=localhost:5672”);
_总线响应异步(异步请求=>
新的回复信息(等待注册人(请求));
返回Task.CompletedTask;
}
欧点
受保护的覆盖任务ExecuteAsync(CancellationToken stoppingToken)
{
_bus=RabbitHutch.CreateBus(“host=localhost”);
_总线响应异步(异步请求=>
新的回复信息(等待注册人(请求));
返回Task.CompletedTask;
}
- 如果您在说明中提到AMQP的非默认端口,请将容器中的56712更改为5672(如果适用)
- 确保每个应用程序实例只调用一次
(共享实例)RabbitHutch.CreateBus(“host=localhost”)
- 确保等待所有异步调用:
受保护的覆盖异步任务ExecuteAsync(CancellationToken stoppingToken)
{
_bus=RabbitHutch.CreateBus(“host=localhost”);
等待总线响应异步(异步请求=>
新的回复信息(等待注册人(请求));
}
我们缺少RegistrClient(请求)的实现,这使我们很难发现任何其他问题。通过在防火墙上插入端口5672解决了问题。您好,感谢您的回复!我将其更改为端口5672,并出现相同的持续错误。经过多次测试后,我决定将此端口添加到Windows防火墙中,并最终正常工作。我觉得奇怪,为什么我在Stack或其他地方的任何问题上都没有看到这个解决方案。无论如何,非常感谢兄弟的帮助!
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
_bus = RabbitHutch.CreateBus("host=localhost");
await _bus.RespondAsync<UsuarioRegistradoIntegrationEvent, ResponseMessage>(async request =>
new ResponseMessage(await RegistrarCliente(request)));
}