2013-10-13 133 views
4

當我們的項目運行.net 4.0時,我安裝了SignalR軟件包。我們升級到4.5,我想支持WebSockets。我卸載了信號包並重新安裝了SignalR(per this answer)。但是SignalR DLL版本(1.1.0/1.1.3)在兩種情況下都是相同的。什麼版本的SignalR支持WebSockets?

這裏是我的配置:

  1. ASP.NET 4.5
  2. IIS 8.0(Windows Server 2012中)
  3. 的WebSockets功能在服務器上啓用
  4. 一個的WebSocket支持瀏覽器(Firefox的最新版本)

即使我有所有這些需要的東西,我仍然得到這個:

{ 「地址」: 「/ signalr」, 「ConnectionToken」: 「Yy6qHcSMMm4vPl9i3ungxJ5aa2P0SJh4UoU4pelAyFcMud0596UaeB6x8AmhZ2SxW_MPk23QXrKGkwar7LjLLnWlBZx1nokd6LRe96k8D-Oua3kSnKsyDa1RrPTE0n9FyaUO9rK3caLfue20Dmx5UkB9F2TKusPD4PDqQw2」, 「的ConnectionId」: 「b7b00e98-3128-4fbb-ba63-fb16f922f168」, 「的KeepAliveTimeout」:20.0, 「DisconnectTimeout」 :30.0, 「TryWebSockets」:假的, 「WebSocketServerUrl」:空, 「ProtocolVersion」: 「1.2」}

我想重要的部分是:

"TryWebSockets":false,"WebSocketServerUrl":null,"ProtocolVersion":"1.2" 

這是否意味着我不是使用WebSocket S'我可能會錯過什麼?

非常感謝。

回答

4

所有主要版本的SignalR均支持WebSockets。

因此,問題是「我的SignalR應用程序使用WebSockets需要什麼?」

  1. ASP.NET 4.5
  2. IIS 8.0(Windows Server 2012中或Windows 8)
  3. 的WebSockets功能的服務器
  4. 一個WebSocket的支持瀏覽器

上啓用了現在,我們已經建立了啓用WebSocket的應用程序所需的功能,似乎您錯過了啓用WebSockets功能。

爲了讓您的服務器上的WebSockets遵循「分步說明here

希望這會有所幫助!

+0

謝謝,我掌握了所有這些東西,這就是爲什麼我對此感到困惑爲什麼WebSockets不被使用(我只是假設它沒有被使用基於來自服務器的迴應,我把它包括在我的問題中)。 –

+0

從您的協商響應來看,即使客戶端嘗試執行WebSocket連接,它也會失敗。這是因爲你的「TryWebSockets」設置爲false,所以服務器說它不能處理它。我同意@ Ruchira的迴應,下面說你可能在從4.0轉換到4.5時有錯誤的步驟,因爲你已經擁有了一切。 –

0

我們自升級到4.5並且我想支持WebSockets。 我運行Windows 2012服務器,IIS 8的WebSockets功能安裝在服務器,我仍然得到這個

由於您使用ASP.NET 4.5,IIS 8和Windows Server 2012中,這個問題應該依靠如何將項目遷移到.NET Framework 4。5或使用瀏覽器。鑑於大多數現代Web瀏覽器都支持Web套接字,我非常懷疑您的引用仍然適用於.NET Framework 4.0。

嘗試使用.NET框架創建一個新的項目4.5。只需使用項目屬性設置目標有時不會更新程序集。

0

我知道你的問題 - 和我們一樣!

您的問題是您正在運行的客戶端。

客戶的Windows堆棧必須> Windows7中對一個 .NET客戶端

使用WebSockets這出乎我們呢! 瀏覽器不受影響,因爲它們有自己的WebSocket堆棧,但Windows .Net網絡堆棧沒有WebSocket。 Windows 8/Windows 2012和IIS 8修復了這個問題。 這就是爲什麼SignalR負載測試儀(曲柄)在Windows7上運行時無法使用WebSocket,只能在Windows 2012(不管服務器)上運行