【发布时间】:2015-08-29 08:42:09
【问题描述】:
我正在使用 SignalR 2 开发一个应用程序,并且在通过 ASP.net 4 RouteTable.Routes 的 .MapOwinRoute() 扩展方法映射 SignalR 时遇到问题。喜欢:
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 序列化程序,这些选项也会在稍后阶段进行配置。
无法完全弄清楚我在这里缺少什么。
【问题讨论】:
标签: c# asp.net signalr signalr-hub owin