While using signalr, will there be any connection limits on IIS

asp.net MvcIisSignalr

asp.net Mvc Problem Overview


I have been looking at SignalR from last few days. Using this I have created an Admin Dashboard to get realtime information about a database table. Basically this table gets populated by may different users from various applications. It has come out well. These updates are possible only when there is persistent connection between client Broswer and WebServer. I have few doubts before deploying this app in production.

I understand that SignalR first checks WebSockets then looks for Long Polling based on there availability between client and server. No matter what it uses, there will be a connection open between client and server.

My question is how does it perform in scenario where more users are connected to the same server for example 100,000 admins are connected at same time. Does IIS has any limitations on number of persistent connections it can open at one point? If so can we configure to that to max value and what wud be that value.

Sorry if it is rookie question

ASP.NET MVC3 & IIS 7 are used for development.

asp.net Mvc Solutions


Solution 1 - asp.net Mvc

You should review the Performance Section of the SignalR Wiki on GitHub. This provides some really good guidance for the following:

  • IIS Configuration - Max Concurrent Requests Per Application
  • ASP.NET Configuration - Max Concurrent Requests & Request Queue Limits

Additionally, it states the key Peformance Counters to monitor when performing load testing of your application. Which IMO you should do to truly have an understanding of how your application is going to perform and make adjustments as necessary for your specific scenario.

Finally, there is a link to Crank the recommended tool for generating client load with SignalR.

Update: Link to Crank is now current.

Solution 2 - asp.net Mvc

Thanks Paige. Here are my findings. ASP.NET 4.0 by default accepts 5000 maximum concurrent requests per CPU. TO change this we need to set this number in ASP.NET Config file which can be found in this location %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet.config

Also I found this great PodCast by Scott HanselMan http://www.hanselminutes.com/325/aspnet-45-updates-core-webforms-and-signalr-with-damian-edwards

Solution 3 - asp.net Mvc

You're probably more likely to run into this on Windows 8 / 10 which has connection limits of only 10*. This will only affect you during development of course - but it's a big pain if you have multiple browsers open with active connections and it's very easy to exceed 10.

*I'm unable to confirm at this time that Windows 10 has the same connection limit as Windows 8, but likely so.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPavan JosyulaView Question on Stackoverflow
Solution 1 - asp.net MvcPaige CookView Answer on Stackoverflow
Solution 2 - asp.net MvcPavan JosyulaView Answer on Stackoverflow
Solution 3 - asp.net MvcSimon_WeaverView Answer on Stackoverflow