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

时间:2012-03-02 22:59:52

标签: signalr

我会试着简短地说明一下:

我想从应用程序中的核心程序集调用Web应用程序中的集线器上的方法。原因是我有许多应用程序,最终都会调用核心和触发事件(想想移动网络,管理站点,api等)。我想使用SignalR通知用户桌面站点发生的事件。

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

如果我从控制台应用程序调用核心,并尝试使用代理向集线器客户端发送消息,一切都很有效。但是,如果我尝试调用核心并使用其中一个Web应用程序的代理,则执行会在调用connection.Start()时挂起:

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

SignalR.Client内容是不是要在Web应用程序的应用程序域中使用?为什么它在控制台应用程序中按预期工作,而不是从Web应用程序工作?


更新:我将我的尖峰连接到SignalR源,当从其中一个Web应用程序运行时,执行挂起在SignalR.Client.Connection的第130行。这种连接的_syncContext是AspNetSynchronizationContext的一个实例,当调用它的Post()方法时,一切都会停止。

1 个答案:

答案 0 :(得分:10)

SignalR.Client中有一个错误,你找到了它:)