C# RawRabbit发布消息

C# RawRabbit发布消息,c#,.net,rabbitmq,rawrabbit,C#,.net,Rabbitmq,Rawrabbit,我怎样才能发布和接收我尝试过的消息,就像下面的代码一样,它使队列和交换,但没有消息进入我的应用程序?我做错了什么 //发布者 公共静态IBusClient GetBusClient() { var config=新的RawRabbitConfiguration { 主机名={“localhost”}, 端口=5672, VirtualHost=“/”, Username=“guest”, Password=“guest” }; var client=BusClientFactory.Create

我怎样才能发布和接收我尝试过的消息,就像下面的代码一样,它使队列和交换,但没有消息进入我的应用程序?我做错了什么

//发布者
公共静态IBusClient GetBusClient()
{
var config=新的RawRabbitConfiguration
{
主机名={“localhost”},
端口=5672,
VirtualHost=“/”,
Username=“guest”,
Password=“guest”
};
var client=BusClientFactory.CreateDefault(配置);
返回客户;
} 
静态void Main(字符串[]参数)
{
string message=“Hello World”;
常量字符串交换\u NAME=“myRabbit”;
动作x=(ctx)=>ctx.WithExchange(x=>x.WithName(EXCHANGE_NAME));
var_bus=GetBusClient();
_bus.PublishAsync(新的基本消息{Message=Message},Guid.NewGuid(),x);
}
//订户
公共静态void Main(字符串[]args)
{
var bus=GetBusClient();
bus.SubscribeAsync(异步(消息,上下文)=>
{
Console.WriteLine($“{msg.Message}.”);
等待任务。FromResult(true);
},ctx=>ctx.WithExchange(x=>x.WithName(“myRabbit”)。WithAutoDelete(false)。With耐久性(true))。WithQueue(x=>x.WithName(“myConsole”)。WithExcluvity(false)。With耐久性(true)。WithAutoDelete(false));
Console.ReadLine();
}

是因为您正在发布
BasicMessage
但订阅了
SubMsg
?我将名称更改为相同,但没有帮助。在这种情况下,您可以尝试并相应地调整它。可能您必须在
\u bus.PublishAsync
调用
\u bus.PublishAsync().wait()
之后等待,以确保在
Main()
endsNow之前已完成发布任务。我收到一个错误[17:48:04][5][INFO][EventingBasicConsumerFactory]:收到的消息:MessageId:47097db8-917c-47ea-a775-1ebf32b89521[17:48:06][4][INFO][TopologyProvider]:正在处理拓扑通道(如果存在)。Newtonsoft.Json.JsonSerializationException:解析Json“Rabit20.Sender,Rabit20”中指定的类型时出错。路径“$type”,第1行,位置44。-->Newtonsoft.Json.JsonSerializationException:无法加载程序集“Rabit20”。位于System.Collections.Concurrentwell的DefaultSerializationBinder.GetTypeFromTypeNameKey(StructMultiKey`2 typeNameKey)。看来你可以成功地发送消息了。发送器和接收器上是否都有
Rabit20
组件?