Я работаю над приложением, использующим SignalR 2, и у меня возникают проблемы с сопоставлением SignalR с помощью метода расширения .MapOwinRoute() для ASP.net 4 RouteTable.Routes. Нравиться:
RouteTable.Routes.MapOwinRoute("signalr.hubs", "signalr/hubs", a => a.MapSignalR());
также добавлено в Web.Config:
<appSettings>
<add key="owin:AutomaticAppStartup" value="false" />
</appSettings
Это сопоставляется. Переход к /signalr/hubs дает мне прокси-серверы концентраторов, но когда я подключаюсь с помощью своего кода:
$(function () {
var orderProcessing = $.connection.orderProcessing;
$.connection.hub.start().done(function () {
orderProcessing.server.doStuff();
});
});
Маршрут /signalr/negotiate возвращает ошибку 404.
Все работает нормально, когда я делаю это так:
[assembly: OwinStartup(typeof(Web.Startup))]
namespace Web
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
Проблема в том, что использование OwinStartup для меня не вариант, так как мне нужно настроить SignalR с моим собственным преобразователем зависимостей, связывающим его с общим контейнером IOC, который я использую, и он не готов к моменту OwinStartup. Мне также нужно настроить сериализатор JSON с пользовательскими параметрами, которые также настраиваются на более позднем этапе.
Не могу понять, что мне здесь не хватает.