C# MassTransit从外部系统提取消息

C# MassTransit从外部系统提取消息,c#,rabbitmq,masstransit,C#,Rabbitmq,Masstransit,当消息从不同的消息发送源(在本例中为RabbitMQ客户端)发送时,MassTransit如何从RabbitMQ提取消息 这些消息共享相同的C#消息契约,并序列化为json 我收到的当前错误是masstransit分析错误 MassTransit使用了许多约定,如果从非MassTransit发布者发布,则可能需要向有效负载中添加其他详细信息。如果出现解析错误,则可能缺少下面的messageType信息 有效负载: { "destinationAddress": "rabbitmq://loc

当消息从不同的消息发送源(在本例中为RabbitMQ客户端)发送时,MassTransit如何从RabbitMQ提取消息

这些消息共享相同的C#消息契约,并序列化为json


我收到的当前错误是masstransit分析错误

MassTransit使用了许多约定,如果从非MassTransit发布者发布,则可能需要向有效负载中添加其他详细信息。如果出现解析错误,则可能缺少下面的messageType信息

有效负载:

{
  "destinationAddress": "rabbitmq://localhost/<exchange>",
  "headers": {},
  "message": {
    "property": "value"
  },
  "messageType": [    
    "urn:message:<TYPE>",
    "urn:message:<PARENT_TYPE>"
  ],
  "sourceAddress": "rabbitmq://localhost/queue"
}
{
“目的地址”:rabbitmq://localhost/",
“标题”:{},
“信息”:{
“财产”:“价值”
},
“消息类型”:[
“urn:消息:”,
“urn:消息:”
],
“源地址”:rabbitmq://localhost/queue"
}

您是否有代码片段或异常详细信息?添加消息类型是一个问题。我还发现我必须添加一个具有如下内容类型的标题:{“content type”,“application/vnd.masstTransit+json”}。要从MT外部创建消息,需要成功处理的三个基本内容是消息、消息类型和内容类型。现在的问题是将内容类型字符串更改为“application/json”。查看MT代码后,看起来我需要一个自定义序列化程序??您需要在一个信封中序列化消息,该信封与MT中
JsonMessageSerializer
的样式相匹配。信封必须包含一些如上所示的值,并且消息类型的算法在
MessageUrn
类中。