我按照以下视频获取信号和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
。
显然我做错了。但我无法理解。
答案 0 :(得分:1)
您似乎没有映射SignalR。将MapSignalR()
添加到Configuration
类中的Startup
方法。