Как правильно вводить автобус при использовании owinselfhost?
У меня есть контроллер веб-API asp.net, который отправляет сообщение nservicebus, то есть Bus.Send(). этот контроллер api самостоятельно размещается с использованием пакетов owinselfhost.
Как правильно вводить автобус, если я использую owinselfhost?
--редактировать--
вот код.. сейчас я использую autofac.. имея эти данные, я получаю исключение null ref на шине...
Рекомендации:
http://docs.autofac.org/en/latest/integration/webapi.html
http://docs.particular.net/nservicebus/containers/
--редактировать--
public void Configuration(IAppBuilder app)
{
var builder = new ContainerBuilder();
//this two controllers are from two separate class libraries.
builder.RegisterApiControllers(typeof(Test1Controller).Assembly);
builder.RegisterApiControllers(typeof(Test2Controller).Assembly);
var config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
var container = builder.Build();
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
Configure.With()
.UsingContainer<AutofacObjectBuilder>()
.UnicastBus()
.SendOnly();
app.UseAutofacMiddleware(container);
app.UseAutofacWebApi(config);
app.UseWebApi(config);
}
1 ответ
Решение
Вы попросили NServiceBus использовать Autofac, но не предоставили ему свой контейнер. Если вы передадите туда свой контейнер, вы получите шину для контроллеров.
Configure.With()
.UsingContainer<AutofacObjectBuilder>(container)
.UnicastBus()
.SendOnly();