Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core System.TimeoutException:&x27;在PersistentChannel上请求的操作已使用EasyNetQ超时_Asp.net Core_Rabbitmq_Easynetq - Fatal编程技术网

Asp.net core System.TimeoutException:&x27;在PersistentChannel上请求的操作已使用EasyNetQ超时

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

我从RabbitMq开始,启动API时遇到问题。发生此错误:System.TimeoutException:“在PersistentChannel上请求的操作已超时”

我正在使用EasyNetQ

RabbitMq在Docker容器中运行,该容器配置为设置:http:15672和ampq:56712。单击此处访问Rabbitmq,浏览器中不会出现任何问题

下面是设置的代码(目前为硬代码)。根据代码,尝试传递用户名和密码,但没有成功

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)));
    }