成功发起请求后无法获得 MassTransit 响应
Cannot get MassTransit response after successfully initiating request
我正在使用 MassTransit 和 Amazon MQ 实施 request/response。 (.NET 6 WebApi) 主机配置如下:
services
.AddMassTransit(x =>
{
x.AddConsumer<ConfigurationConsumer>();
x.UsingRabbitMq((context, cfg) =>
{
cfg.Host(new Uri($"amqps://{rabbitMqSettings.Host}:{rabbitMqSettings.Port}/{Uri.EscapeDataString("/vhostname")}"), h =>
{
h.Username(rabbitMqSettings.Username);
h.Password(rabbitMqSettings.Password);
});
cfg.ConfigureEndpoints(context);
});
x.AddRequestClient<IConfigurationCommand>();
})
.AddMassTransitHostedService();
客户端使用相同的配置,但没有 x.AddConsumer() 和 cfg.ConfigureEndpoints(context)。
问题是:在客户端上调用 GetResponse 将成功执行主机上的使用者,这似乎按预期响应,但客户端永远不会得到结果并超时。
另一方面,当我在同一台主机上使用 Web api 控制器启动 GetResponse 时,一切都按预期工作。
确保主机和客户端应用程序之间的消息类型相同。
此外,确保使用托管服务或其他方式在客户端上启动总线。
我正在使用 MassTransit 和 Amazon MQ 实施 request/response。 (.NET 6 WebApi) 主机配置如下:
services
.AddMassTransit(x =>
{
x.AddConsumer<ConfigurationConsumer>();
x.UsingRabbitMq((context, cfg) =>
{
cfg.Host(new Uri($"amqps://{rabbitMqSettings.Host}:{rabbitMqSettings.Port}/{Uri.EscapeDataString("/vhostname")}"), h =>
{
h.Username(rabbitMqSettings.Username);
h.Password(rabbitMqSettings.Password);
});
cfg.ConfigureEndpoints(context);
});
x.AddRequestClient<IConfigurationCommand>();
})
.AddMassTransitHostedService();
客户端使用相同的配置,但没有 x.AddConsumer() 和 cfg.ConfigureEndpoints(context)。
问题是:在客户端上调用 GetResponse 将成功执行主机上的使用者,这似乎按预期响应,但客户端永远不会得到结果并超时。
另一方面,当我在同一台主机上使用 Web api 控制器启动 GetResponse 时,一切都按预期工作。
确保主机和客户端应用程序之间的消息类型相同。
此外,确保使用托管服务或其他方式在客户端上启动总线。