2012-09-12 33 views
2

我使用SignalR.Hubs連接到一個名爲「MyHub」的集線器,我的虛擬目錄「MyVD」在IIS中託管了我的集線器:這是我試圖連接到集線器的方式:SignalR和Silverlight

 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(); 

時候,我這樣做,我得到的異常消息「遠程服務器返回錯誤:NOTFOUND。」

at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at SignalR.Client.Http.HttpHelper。 <> C_ DisplayClass2.b _0(IAsyncResult的AR) 在System.Threading.Tasks.TaskFactory endfunction下面,動作1 endAction, Task 1諾言)。

請注意,我能夠談判到樞紐,當我直接在Visual Studio中運行它(當然,我更改url指向本地開發服務器) 任何幫助,將不勝感激。

感謝, Alpee

回答

1

只需再添點:

我能夠在我的Silverlight客戶端的樞紐negoiate,如果我使用的DLL來源:http://chris.59north.com/post/2011/12/15/SignalR-and-Silverlight.aspx後我替換所有的dll文件從github的最新的,我得到了上面提到的錯誤。請注意,而不是Signalr.Client.SilverLight.dll,我使用Signalr.Client.SilverLight5.dll和System.Threading.Tasks.SL5.dll。

感謝,Alpee

0

我打了一些象這樣的錯誤昨晚發現,在IIS中運行的樞紐,是連接到它的客戶端必須運行SignalR包的版本相同。我最初使用的是我下載的演示程序,當我創建了我的中心服務器以在IIS中託管時,我使用nuGet獲取最新版本(不是預發行版)。當我將演示項目的軟件包更新爲nuGet,我能夠連接。

我不得不做的另一件事是將crossdomain.xml文件添加到IIS網站的ROOT以允許Silverlight連接。

希望有幫助!

Cindy K.