I've just discovered that ASP.NET MVC controllers 'lock' the session when each call to the controller is made. So, if your call takes 1 minute to complete, then all calls get queued up until that 1 minute call finishes. Also - if the browser tab closes, then the call never finishes and the session remains locked forever - which means the user can't use the system again until the session dies. To me this seems like a huge problem and I am surprised I haven't noticed before.
I only store a couple of things in the session so I would like to just lock it during the rare moments that I update those things, but this doesn't seem possible. It seems to be all or nothing - either it completely locks it or it is read only.
Does anyone have advice on how I can get around this?
Thanks