仅使用webapi

时间:2015-06-25 16:30:53

标签: .net asp.net-web-api signalr

我按照以下视频获取信号和webapi一起运行: Video

但是,我无法让它解决我的问题。我有一个空的api项目,它引用了许多其他项目,这些项目都为其功能定义了api控制器。

在其他一个项目中,我想添加一个信号器中心与客户端进行通信。所以,我通过nuget添加了signalR。

马上我开始收到OWIN错误,所以我在应用设置中添加了以下内容

<add key="owin:AutomaticAppStartup" value="false" />

我已将hubcontext添加到相关控制器中,如下所示:

private readonly Lazy<IHubContext> _hub = new Lazy<IHubContext>(
    () => GlobalHost.ConnectionManager.GetHubContext<TaskHub>());

/// <summary>
/// Gets the hub.
/// </summary>
protected IHubContext Hub
{
    get { return _hub.Value; }
}

然后在其中一个api调用中,我添加了以下代码以向客户端发送消息:

Hub.Clients.All.taskLoaded();

当我开始在客户端上工作时,连接每次都会失败。经过一些调查后,我了解到.../signalr/negotiate总是返回404

显然我做错了。但我无法理解。

1 个答案:

答案 0 :(得分:1)

您似乎没有映射SignalR。将MapSignalR()添加到Configuration类中的Startup方法。