SignalR .NET客户端:无法启动连接从在Web应用程序的应用程序域

问题描述:

我会尽力做一个长话短说:SignalR .NET客户端:无法启动连接从在Web应用程序的应用程序域

我想打电话给集线器上的方法,从核心组件在Web应用程序我的应用程序。原因是我有很多应用程序最终都会调用核心和触发事件(例如,考虑移动网站,管理站点,api等)。我想使用SignalR通知桌面事件发生的用户。

为了实现这个目标,我创建了一个4项目解决方案。集线器代理的核心项目。集线器的Web应用程序。另一个没有集线器的网络应用。最后一个控制台应用程序。

如果我从控制台应用程序调用核心,并尝试使用代理向中心客户端发送消息,那么一切正常。但是,如果我尝试打电话到核心,从Web应用程序之一使用代理,执行挂起,在调用connection.Start():

var connection = new HubConnection("..."); 
var hub = connection.CreateProxy("Spike.Hub"); 
connection.Start().Wait(); 

是在SignalR.Client的东西并不意味着是从网络应用程序的应用程序域内使用?为什么它在控制台应用程序中按预期工作,但不是来自Web应用程序?


更新:我迷上我秒杀到SignalR源,并从Web应用程序的一个运行时,执行在SignalR.Client.Connection的130线挂起。这种连接的_syncContext是AspNetSynchronizationContext的一个实例,当调用它的Post()方法时,一切都停止。

有一个在SignalR.Client一个错误,你发现它:)

+0

万岁我:S - 将继续在GitHub上的问题进行任何讨论。 https://github.com/SignalR/SignalR/issues/221#issuecomment-4300487。 – spot 2012-03-03 16:51:13