0

I have a website in IIS 8.5.9600.16384, we communicate with thousands of mobile devices through cyclic synchronisation and through SignalR 2.3.0.

This morning we had an application pool reset during working hours, which caused the SignalR to call "OnReconnect" of all our mobile devices at the same time.

I though that IIS started new processes first and then killed the old, not having downtime.

Can somebody tell me exactly what happens when IIS recycles it's application pool on the SignalR side? And in which cases can there be a connection downtime? (ex : if the server is busy?)

Edited : The application pool was recycled by IIS because of the "time limit". The IT team will change this setting so that the application pools reset every day at night time when it will have a lower impact on our applications.

A worker process with process id of '8720' serving application pool 'DefaultAppPool' has requested a recycle because the worker process reached its allowed processing time limit.

Also confirmed that disallowOverlappingRotation is not set to True. Any hint would help.


A few years later, I'm still getting some problems with the application pool recycle and SignalR. We are occasionally seeing thousands of re-connections of SignalR while the application pool recycle occurs, opening more than 60k TCPIP ports and causing a crash in IIS.

We managed to have it run "okay" for quite some time but it still crashes. Any hint would help. thanks

Danielle Paquette-Harvey
  • 1,691
  • 1
  • 16
  • 31

1 Answers1

1

I'd first identify how IIS was reset. If you experienced a crash or performed an IISReset, the processes would be down before a new one stood back up. If on the other hand you configured AppPool recycling, then the overlapping processes should occur as you mention. I would check the System Event Log for recycling messages. Note that not all recycle reasons are logged by default.

You may also check to make sure disallowOverlappingRotation is not set to True.

Specifies whether the WWW Service should start another worker process to replace the existing worker process while that process is shutting down. The value of this property should be set to true if the worker process loads any application code that does not support multiple worker processes. https://learn.microsoft.com/en-us/iis/configuration/system.applicationhost/applicationpools/add/recycling/

Rich-Lang
  • 469
  • 2
  • 7
  • Thanks, I edited the question, the application pool was recycled, it was not a crash or an IISReset. I'll check with the IT team for the "disallowOverlappingRotation" option. – Danielle Paquette-Harvey Mar 28 '19 at 15:18
  • 1
    The TimeLimit recycle >should< have created overlapping recycles (unless that disallowOverlappingRotation is set to true). It has a default setting of 29 hours which dates back to Windows 2003. A much more sensible way to handle it is (as you mention above): Schedule based during off-hours. – Rich-Lang Mar 29 '19 at 18:37