- Dotnet Framework: 4.8
- SignalR nuget package: 2.4.0
- Angular client using Signalr: "^2.4.2",
- Two nodes application server behind load balancer.
- Web socket support configured on IIS. (IIS latest version on Windows Server 2016)
- Web socket is the only transport protocol present in the client side code
- ASP.NET Web API application hosted on IIS
- SQL Server-2016 as broker to pass notification on Datachange
- Passing notification to requesting client using connectionId
System works well for a single node environment. Chrome's network tab shows client has following endpoint communication
- /signalr/negotiate?clientProtocol=2.1&connectionData=d&_=xtz -[200-OK]
- /signalr/start?transport=webSockets&clientProtocol=2.1&connectionToken=t&_=abc [200-OK]
However, when we try to connect to appServer under a Load Balancer, We are facing an issue of client connection to the app server
System shows the below logs when requests are intercept via Fiddler for Load Balanced environment.
- /signalr/negotiate?clientProtocol=2.1&connectionData=d&_=xtz -[200-OK]
- /signalr/start?transport=transport=serverSentEvents&clientProtocol=2.1&connectionToken=t&_=abc -[404-NOTFOUND]
- /signalr/start?transport=transport=longPolling&clientProtocol=2.1&connectionToken=t&_=abc -[404-NOTFOUND]
- /signalr/abort?transport=longPolling&clientProtocol=2.11&connectionToken=t&_=abc -[200]
I've a feeling of LoadBalancer causing this issue.Not in favour of using stick session Can someone please tell what needs to be done to address this issue.
Regards