C# 在ASP.Net核心应用程序中向MassTransit Saga发送消息

C# 在ASP.Net核心应用程序中向MassTransit Saga发送消息,c#,asp.net-core,masstransit,saga,C#,Asp.net Core,Masstransit,Saga,我在Asp.Net核心应用程序中有一个简单的saga配置: services.AddSingleton; services.AddMassTransitx=> { x、 AddSagaStateMachine; x、 AddRequestClient; x、 AddBusprovider=>Bus.Factory.CreateUsingInMemorycfg=> { cfg.UseInMemoryOutbox; cfg.ConfigureEndpointsprovider; }; }; 如果以后

我在Asp.Net核心应用程序中有一个简单的saga配置:

services.AddSingleton; services.AddMassTransitx=> { x、 AddSagaStateMachine; x、 AddRequestClient; x、 AddBusprovider=>Bus.Factory.CreateUsingInMemorycfg=> { cfg.UseInMemoryOutbox; cfg.ConfigureEndpointsprovider; }; }; 如果以后我通过IRequestClient向Saga发送消息:

var client=context.RequestServices.GetService; var response=await client.GetResponsenew { CorrelationId=Guid.NewGuid, ClientId=1, }; 一切正常。但如果我在IBus上尝试同样的方法:

var mtbus=context.RequestServices.GetService; 等待mtbus.Sendnew { CorrelationId=Guid.NewGuid, ClientId=1, }; I get error找不到消息类型Sample.AspNetCore.Host.Saga.IRequestCreated的约定


我缺少什么?

在上面的示例中,因为没有为请求客户端指定服务地址,所以它正在发布请求。它被路由到消费者

在失败的情况下,您使用的是Send,它没有地址,需要知道在哪里发送消息。唯一的退路是未配置的约定。如果您想要相同的行为,老实说,因为您正在发布一个RequestCreated事件,那么您也应该调用Publish