【发布时间】:2016-12-29 07:52:27
【问题描述】:
通过为两个应用程序中的每一个创建 AppDomain,我有两个不同的应用程序在同一进程上运行。 application1 的总线设置如下所示:
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>();
application2 的总线设置如下所示:
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 文档来看,除了接收端点之外,我们在内存中运行时不需要指定任何其他内容。
我在设置中做错了吗?即在内存中运行时目标网址是否重要。 我是否还必须在 application2 中指定消费者?
任何帮助将不胜感激。(使用公共交通版本 3.4.1)
【问题讨论】:
标签: masstransit