仅使用 webapi 时无法协商 Signalr
Can't negotiate Signalr when using only webapi
我观看了以下有关获取信号和网络的视频api 运行:
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
。
显然我做错了什么。但是我想不通。
您似乎没有映射 SignalR。将 MapSignalR()
添加到 Startup
class 中的 Configuration
方法。
我观看了以下有关获取信号和网络的视频api 运行: 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
。
显然我做错了什么。但是我想不通。
您似乎没有映射 SignalR。将 MapSignalR()
添加到 Startup
class 中的 Configuration
方法。