Итак, я добавляю MassTransit в существующий проект, который раньше уже использовал клиент RMQ.
Я пытаюсь создать шину только для отправки, которая привязывается к существующему обмену. Однако, когда я пытаюсь отправить сообщение, я получаю сообщение об ошибке типа «fanout», но существующий тип - «topic», и я не уверен, как указать, должно ли оно быть «topic» или что оно не должновообще не пытайтесь создать обмен и просто использовать то, что есть.
Топология: «импорт» (обмен) -> «импорт» (очередь)
Настройка:
Bus.Factory.CreateUsingRabbitMq(
cfg =>
{
cfg.UseNLog();
var host = cfg.Host(serverName, vhost,
options =>
{
options.Username(userName);
options.Password(password);
});
});
Выполнение:
var ep = bus.GetSendEndpoint(new Uri($"rabbitmq://{userName}:{password}@{serverName}/{vhost}/{queue}")).Result;
ep.Send<ImportMessage>(CastMessage<ImportMessage>(message),
cfg =>
{
cfg.SetRoutingKey("import");
}).Wait();
Команда:
public class ImportMessage
{
public ImportMessage()
{
Parameters = new List<KeyValuePair<string, string>>();
}
public List<KeyValuePair<string, string>> Parameters { get; set; }
public string Endpoint { get; set; }
public Guid Id { get; set; }
public string Type { get; set; }
public DateTime Expiration { get; set; }
}