2014-01-30 75 views
6

我工作的一個SignalR項目,我有時也有這個問題C# - SignalR - 錯誤而關閉的WebSocket

錯誤而關閉的WebSocket: System.Net.WebSockets.WebSocketException(0x80070006):手柄是 無效

我覺得現在的問題是與我的這部分代碼:

var currentHub = GlobalHost.ConnectionManager.GetHubContext<HubManager>(); 
currentHub.Groups.Remove(userConnectionId, roomName); 

你對這個問題有什麼想法,我該如何解決它?

感謝

+0

我偶爾在我的「單元」測試中看到這些(我沒有清楚地關閉連接)。 –

回答

1

我有同樣的問題,這開始發生時,我添加了一個SQL背板signalR,

它與我所做的輪轂方面的「新鮮度」做的是:

/// <summary> 
    /// In case a backplane is used (in case of load balancer) , the instance should always be taken fresh 
    /// if no backplane is used no need to refresh the instance on each invocation 
    public class HubContextService 
    { 
     bool BackplaneUsed { get; set; } 
     IHubContext _context = null; 

     public HubContextService(bool isBackPlaneUsed = true) 
     { 
      BackplaneUsed = isBackPlaneUsed; 
     } 

     public IHubContext HubContext 
     { 
      get 
      { 
       if (BackplaneUsed) 
       { 
        return GlobalHost.ConnectionManager.GetHubContext<HubManager>(); 
       } 
       else 
       { 
        if (_context == null) 
        { 
         _context = GlobalHost.ConnectionManager.GetHubContext<HubManager>(); 
        } 
        return _context; 
       } 
      } 
      set 
      { 
       _context = value; 
      } 
     } 
    }