How to resolve "The request queue limit of the session is exceeded. System.Web.HttpException at System.Web.SessionState.SessionStateModule.QueueRef"
If you use DXC, this error might hide behind CDN 524 error page, you should check the error in application insight and if it was the case this is the solution.
If you are using episerver with .net 4.7 you might get "The request queue limit of the session is exceeded. System.Web.HttpException at System.Web.SessionState.SessionStateModule.QueueRef" in you log or application Insight. the exprieve will be awefull and you need to clear your cache or use incongnito mode to see the page again.
So what is the cause of the issue?
In the .NET Framework 4.6.2 and earlier, ASP.NET executes requests with the same Sessionid sequentially, and ASP.NET always issues the Sessionid through cookies by default. If a page takes a long time to respond, it will significantly degrade server performance just by pressing F5 on the browser. In the fix, we added a counter to track the queued requests and terminate the requests when they exceed a specified limit. The default value is 50. If the limit is reached, a warning will be logged in the event log, and an HTTP 500 response may be recorded in the IIS log.(https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/retargeting/4.5.2-4.7)
so what is the soloution? the only suloution I have in mind is to back to previouse behaviour which can be done by installing "Microsoft.AspNet.SessionState.SessionStateModule" NuGet package and adding following settings in web.config
<appSettings>
<add key="aspnet:RequestQueueLimitPerSession" value="2147483647"/>
<add key="aspnet:AllowConcurrentRequestsPerSession" value="true" />
</appSettings>
We saw this error in our onPremise solution running 4.7.2 but FYI for anyone looking into this error, you don't need to install the Nuget package to be able to set the RequestQueueLimitPerSession. Infact installing the package makes the login to Episerver to stop working (at least ours Identity-based solution stopped). As the Microsoft doc states you only need the appSettings setting to reset the limit