2

我正在使用 SignalR.Hubs 连接到一个名为“MyHub”的集线器,我的集线器托管在 IIS 中,虚拟目录为“MyVD”:这就是我正在尝试连接到集线器的方式:

        var conn = new HubConnection("http://localhost/MyVD");

        var hub = conn.CreateProxy("MyHub");          
        hub.On<string>("MyMethod", message => Deployment.Current.Dispatcher.BeginInvoke(() => _messages.Add(message)));
        conn.Start();

当我这样做时,我收到异常消息“远程服务器返回错误:未找到”。

在 System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在 SignalR.Client.Http.HttpHelper.<>c_ DisplayClass2.b _0(IAsyncResult ar) 在 System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction,操作1 endAction, Task1 承诺)。

请注意,当我直接在 Visual Studio 中运行它时,我可以与集线器协商(当然,我将 url 更改为指向本地开发服务器)任何帮助,将不胜感激。

谢谢, 阿尔皮

4

2 回答 2

1

只是补充一点:

如果我使用来自以下网址的 dll,我可以与 silverlight 客户端中的集线器进行协商:http://chris.59north.com/post/2011/12/15/SignalR-and-Silverlight.aspx我替换所有使用来自 github 的最新版本的 dll,我收到上述错误。请注意,我使用的是 Signalr.Client.SilverLight5.dll 和 System.Threading.Tasks.SL5.dll,而不是 Signalr.Client.SilverLight.dll。

谢谢, 阿尔皮

于 2012-09-13T05:37:08.563 回答
0

我昨晚解决了一些类似的错误,发现在 IIS 中运行的集线器和连接到它的客户端必须运行相同版本的 SignalR 包。我最初使用的是我下载的演示程序,当我创建集线器服务器以托管在 IIS 中时,我使用 nuGet 获取最新版本(不是预发布版本)。当我将演示项目的包更新为nuGet,我能够连接。

我必须做的另一件事是将 crossdomain.xml 文件添加到 IIS 网站的根目录,以允许 Silverlight 连接。

希望有帮助!

辛迪·K。

于 2013-10-14T01:49:04.867 回答