Как указать маршрут другого решения в маршрутизации NServiceBus? - PullRequest
0 голосов
/ 06 февраля 2019

Я реализую NServiceBus в приложении .net core 2.2.Все работает нормально, но теперь я решил переместить обработчики в отдельное решение и вызвать их из решения webapi.Изначально все было настроено в одном решении, поэтому я мог реализовать маршрутизацию следующим образом:

var endpointConfiguration = newEndpointConfiguration(AssemblyName);
    var transport = endpointConfiguration.UseTransport<LearningTransport>();
    endpointConfiguration.SendOnly();

    var routing = transport.Routing();
    routing.RouteToEndpoint(
            assembly: typeof(OrderProcessEvent).Assembly,
            destination: "Orders");

    endpoint = NServiceBus.Endpoint.Start(endpointConfiguration).GetAwaiter().GetResult();

Теперь, как я могу указать путь к другому решению в «пункте назначения»?Что-то вроде:

 routing.RouteToEndpoint(
        assembly: typeof(OrderProcessEvent).Assembly,
        destination: @"C:\Endpoints\Orders");

Обновление:

По ответу Дэниелса.Я пробовал это:

var endpointConfiguration = new EndpointConfiguration(AssemblyName);
                var transport = endpointConfiguration.UseTransport<LearningTransport>();
                //endpointConfiguration.SendOnly();
                transport.StorageDirectory(@"..\.Endpoints\");
                var routing = transport.Routing();
                routing.RouteToEndpoint(
                    assembly: typeof(OrderProcessEvent).Assembly,
                    destination: "Orders");

                endpoint = NServiceBus.Endpoint.Start(endpointConfiguration).GetAwaiter().GetResult();

Но я все еще получаю ту же ошибку

"Не указан адресат для сообщения: Namespace.Orders"

1 Ответ

0 голосов
/ 06 февраля 2019

При использовании обучающего транспорта (предостережение, а не рабочий транспорт) вы можете указать каталог хранилища с помощью

var transport = endpointConfiguration.UseTransport<LearningTransport>();
transport.StorageDirectory("PathToStoreTransportFiles");

, если все конечные точки указывают на один и тот же каталог, который они могут связывать вместе.В качестве быстрого примера, скажем, ваш каталог src структурирован следующим образом:

src\
  Solution1\
  Solution2\

вы можете настроить транспорт для обучения следующим образом

var transport = endpointConfiguration.UseTransport<LearningTransport>();
transport.StorageDirectory("..\.learningtransport");

, который затем создает

src\
  Solution1\
  Solution2\
  .learningtransport

пожалуйста, имейте в виду, что если вы настроите каталог хранилища таким образом, вам может потребоваться учитывать, что конечные точки будут выполняться в bin\[Release|Debug]\netXYZ.

Более подробную информацию о конфигурации обучающего транспорта можно найти вhttps://docs.particular.net/transports/learning

...