首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的Send only总线没有创建临时队列?

为什么我的Send only总线没有创建临时队列?
EN

Stack Overflow用户
提问于 2016-01-27 16:41:47
回答 1查看 601关注 0票数 1

为了使用masstransit测试请求/响应saga,我创建了一个控制台应用程序,通过在总线(RabbitMQ)上发送消息来启动saga。

根据documentation的说法,控制台应用程序不需要定义任何端点来接收响应。

我使用以下代码创建总线:

代码语言:javascript
运行
复制
            context.Bus = Bus.Factory.CreateUsingRabbitMq(x =>
        {
            IRabbitMqHost host = x.Host(new Uri(ConfigurationManager.AppSettings["RabbitMQHost"]), h =>
            {
                h.Username("guest");
                h.Password("guest");
            });
        });

当上面的代码运行时,我没有看到创建任何交换或临时队列。

发送请求将导致执行saga,但响应将永远不会返回到原始发送者,并且将抛出超时异常。

发送请求:

代码语言:javascript
运行
复制
    public async Task Test(TestContext context)
    {
        var triggerRequestMessage = JsonConvert.DeserializeObject<TriggerRequestMessage>Messages.MFAMessages.ValidMessage);

        var client = CreateRequestClient(context);
        var response = await client.Request(triggerRequestMessage);
        Logger.Log("Result: PublishMFAMessage");
    }

    IRequestClient<TriggerRequestMessage, ResponseMessage> CreateRequestClient(TestContext context)
    {
        var serviceAddress = new Uri("rabbitmq://localhost/MTTest/SAGAS_AUTHBOLTON");
        var client = context.Bus.CreateRequestClient<TriggerRequestMessage, ResponseMessage>(serviceAddress, TimeSpan.FromSeconds(10));

        return client;
    }

我做错了什么?为什么没有创建临时的?

EN

回答 1

Stack Overflow用户

发布于 2016-01-29 21:40:46

上面的代码没有创建任何私有消费者的原因是因为我不想启动总线。啊!!

缺少的代码:

代码语言:javascript
运行
复制
context.Bus.Start();

@travis感谢你的帮助!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35032422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档