2014-11-05 87 views
0

我們在暫存環境中遇到了一個問題,SignalR認爲請求來自另一個域。因此,我們暫時啓用了CORS ...但是,我們意識到我們被降級爲長輪詢,這意味着我們無法保持服務器的親和力。SignalR認爲請求是跨域

我們使用.NET 4/SignalR 1.2.2,並且我們的請求通過F5負載均衡器。我們正在嘗試調試此問題,獲取日誌並禁用CORS以獲取確切的詳細信息。我試圖映射一個集線器「http://domainname.com/signalr」,但它沒有奏效。該應用程序沒有抱怨,但我無法連接到signalr了。由於我們使用.NET 4,因此我們無法使用最新版本/ WebSockets。

什麼是指示SignalR允許一系列域的最佳方式? (我也嘗試了多次調用映射集線器,但失敗了)。

UPDATE:

經進一步調查,我已經意識到應用程序可以從內部和外部訪問。 SignalR似乎綁定到機器名稱。因此,一切工作在本地網址。但是,當我們從F5負載均衡器轉發的外部域發出請求時,SignalR認爲這是一個跨站請求......理論上它不是這種情況。

這可能是F5的問題嗎?

有沒有辦法讓SignalR允許某些域不降級爲longPolling?

+0

使用Fiddler,並驗證SignalR的請求響應,並驗證確切的錯誤是什麼。 – 2014-11-05 04:55:08

+0

您是否在SignalR中實現了ScaleOut? – 2014-11-05 04:55:31

+0

如果您指的是Redis等,那麼我們就沒有。我們的應用程序不需要服務器關聯,除了我們使用SignalR的特定用例。我會在另一個部署之後檢查確切的日誌,我們將關閉CORS。謝謝。 – theoutlander 2014-11-05 05:01:16

回答

0

如果你已經實現了負載均衡則必須實現規模出SignalR

看看ScaleOut in SignalR 一種方法是ScaleOut與SQL Server:Have a look

+0

我的問題與ScaleOut有什麼關係?接收服務器認爲請求源自不同的域......它不是。這是如何回答我的問題? – theoutlander 2014-11-05 05:07:51