0
我有兩個不同的應用程序通過爲兩個應用程序中的每一個創建AppDomain在同一進程上運行。總線設置爲應用程序1是這樣的:MassTransit在兩個不同的應用程序在同一進程上運行的內存設置
builder.Register(c =>
{
var inMemoryTransportCache = new InMemoryTransportCache(Environment.ProcessorCount);
var bus = Bus.Factory.CreateUsingInMemory(sbc =>
{
sbc.SetTransportProvider(inMemoryTransportCache);
});
return bus.GetSendEndpoint(new Uri(busDestination)).Result;
}).As<ISendEndpoint>();
總線設置爲應用2看起來像這樣:
builder.Register(c =>
{
var inMemoryTransportCache = new InMemoryTransportCache(Environment.ProcessorCount);
var bus = Bus.Factory.CreateUsingInMemory(sbc =>
{
sbc.ReceiveEndpoint("TestQueue", ce =>
{
ce.LoadFrom(c);
});
sbc.SetTransportProvider(inMemoryTransportCache);
});
return bus;
})
.As<IBusControl>()
.As<IBus>()
.SingleInstance();
builder.Register(c => c.Resolve<IBusControl>().GetSendEndpoint(
new Uri("destinationUrl")).Result)
.As<ISendEndpoint>()
.SingleInstance();
當我從應用1將消息發送到應用程序2,應用2不接收它。
從masstransit文檔看來,除了接收端點外,我們不需要在內存中運行時指定其他任何東西。
我在設置中做錯了什麼?即運行內存時,目標網址是否重要。 我是否必須在應用程序2中指定消費者?
任何幫助,將不勝感激。(使用masstransit版本3.4.1)
我們正試圖在內存中執行驗收測試的運行。因此,我們的使用規範流程的驗收測試項目爲每個應用程序(即api控制檯主機,應用程序控制臺主機)初始化不同的應用程序域,以便不同的應用程序可以在同一進程上運行,因此只是爲了端到端測試。 – sagar