AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 76927191
Accepted
Mark
Mark
Asked: 2023-08-18 15:17:42 +0800 CST2023-08-18 15:17:42 +0800 CST 2023-08-18 15:17:42 +0800 CST

RequestTimeoutException ao usar solicitações MassTransit 8 no LINQPad 7

  • 772

Ainda novo no MassTransit e encontrando problemas ao tentar usar solicitações MT8 em scripts LINQPad. Eu tenho uma instância de gerenciamento RabbitMQ criada localmente no Docker, que funciona com aplicativos de console .NET, mas devo estar perdendo alguns requisitos para usar o MT8 diretamente do LINQPad 7.

Aqui está um exemplo básico que fiz para demonstrar meu erro:

async Task Main()
{
    IServiceCollection services = new ServiceCollection();
    services.AddMassTransit(x =>
    {
        x.AddConsumer(typeof(MyConsumer));

        x.UsingRabbitMq((ctx, cfg) =>
        {
            cfg.Host("localhost", 5672, "/", h =>
            {
                h.Username("guest");
                h.Password("guest");
            });

            cfg.ConfigureEndpoints(ctx);
        });
    }); 
    var serviceProvider = services.BuildServiceProvider();
    
    var bus = serviceProvider.GetService<IBus>();
    var response = await bus.Request<MyRequest, MyResponse>(new MyRequest("Hi there"));
    response.Message.Dump("Response");
}

namespace MyNamespace
{
    public class MyRequest
    {
        public MyRequest() { }

        public MyRequest(string phrase)
        {
            Phrase = phrase;
        }

        public string Phrase { get; set; }
    }

    public class MyResponse
    {
        public MyResponse() { }

        public MyResponse(string phrase)
        {
            Phrase = phrase;
        }

        public string Phrase { get; set; }
    }

    public class MyConsumer : IConsumer<MyRequest>
    {
        public async Task Consume(ConsumeContext<MyRequest> context)
        {
            await context.RespondAsync(new MyResponse($"'{context.Message.Phrase}' to you too!"));
        }
    }
}

Meu container RabbitMQ parece receber a mensagem (e criar uma troca temporária), mas não consegue encaminhá-la de volta...

insira a descrição da imagem aqui

Depois de 30 segundos, a exceção é lançada:

RequestTimeoutException: Tempo limite de espera de resposta

insira a descrição da imagem aqui

As mensagens são enviadas corretamente do LINQPad com esse método, e os consumidores configurados em aplicativos de console .NET podem consumi-las sem problemas. Mas não posso fazer solicitações/respostas do LINQPad, que é meu objetivo final aqui.

Desde já, obrigado :)

.net
  • 1 1 respostas
  • 11 Views

1 respostas

  • Voted
  1. Best Answer
    Chris Patterson
    2023-08-18T19:49:33+08:002023-08-18T19:49:33+08:00

    Uau, faz anos desde que vi alguém usar o LINQpad.

    E ainda mais desde que tive que dizer às pessoas que elas precisam ligar o ônibus .

    O MassTransit usa um serviço hospedado para iniciar o ônibus, que normalmente é invocado pelo host genérico subjacente integrado ao .NET.

    Como você não está usando o host, precisará sair IBusControldo contêiner e iniciar o ônibus. E sim, você também precisará pará-lo depois de terminar.

    • 1

relate perguntas

  • Inferno de atualização do .NET

  • Como extrair detalhes da instrução select para um método diferente e ainda manter o carregamento antecipado?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    destaque o código em HTML usando <font color="#xxx">

    • 2 respostas
  • Marko Smith

    Por que a resolução de sobrecarga prefere std::nullptr_t a uma classe ao passar {}?

    • 1 respostas
  • Marko Smith

    Você pode usar uma lista de inicialização com chaves como argumento de modelo (padrão)?

    • 2 respostas
  • Marko Smith

    Por que as compreensões de lista criam uma função internamente?

    • 1 respostas
  • Marko Smith

    Estou tentando fazer o jogo pacman usando apenas o módulo Turtle Random e Math

    • 1 respostas
  • Marko Smith

    java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.<init>(java.net.URI, java.time.Duration, java.time.Duratio

    • 3 respostas
  • Marko Smith

    Por que 'char -> int' é promoção, mas 'char -> short' é conversão (mas não promoção)?

    • 4 respostas
  • Marko Smith

    Por que o construtor de uma variável global não é chamado em uma biblioteca?

    • 1 respostas
  • Marko Smith

    Comportamento inconsistente de std::common_reference_with em tuplas. Qual é correto?

    • 1 respostas
  • Marko Smith

    Somente operações bit a bit para std::byte em C++ 17?

    • 1 respostas
  • Martin Hope
    fbrereto Por que a resolução de sobrecarga prefere std::nullptr_t a uma classe ao passar {}? 2023-12-21 00:31:04 +0800 CST
  • Martin Hope
    比尔盖子 Você pode usar uma lista de inicialização com chaves como argumento de modelo (padrão)? 2023-12-17 10:02:06 +0800 CST
  • Martin Hope
    Amir reza Riahi Por que as compreensões de lista criam uma função internamente? 2023-11-16 20:53:19 +0800 CST
  • Martin Hope
    Michael A formato fmt %H:%M:%S sem decimais 2023-11-11 01:13:05 +0800 CST
  • Martin Hope
    God I Hate Python std::views::filter do C++20 não filtrando a visualização corretamente 2023-08-27 18:40:35 +0800 CST
  • Martin Hope
    LiDa Cute Por que 'char -> int' é promoção, mas 'char -> short' é conversão (mas não promoção)? 2023-08-24 20:46:59 +0800 CST
  • Martin Hope
    jabaa Por que o construtor de uma variável global não é chamado em uma biblioteca? 2023-08-18 07:15:20 +0800 CST
  • Martin Hope
    Panagiotis Syskakis Comportamento inconsistente de std::common_reference_with em tuplas. Qual é correto? 2023-08-17 21:24:06 +0800 CST
  • Martin Hope
    Alex Guteniev Por que os compiladores perdem a vetorização aqui? 2023-08-17 18:58:07 +0800 CST
  • Martin Hope
    wimalopaan Somente operações bit a bit para std::byte em C++ 17? 2023-08-17 17:13:58 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve