This is for Blazor (server).
According to this documentation, session scope for a service in Blazor (server side) means:
Scoped services aren't reconstructed when navigating among components on the client, where the communication to the server takes place over the SignalR connection of the user's circuit, not via HTTP requests.
And in this blog article (seems to be knowledgable):
It creates a scope for each so-called “circuit”. A circuit is created when a new browser tab connects to the Blazor server via the underlying SignalR transport, and it is terminated when the browser tab is closed again (or if the connection is lost and fails to reconnect within a specified time frame).
But in [this Microsoft Q&A](https://learn.microsoft.com/en-us/answers/questions/1276643/should-this-be-transient-scoped-(and-is-it-a-good) it says:
If this is a Blazor Server question then scoped behaves like a singleton. The official documentation covers how service life time works..
I think a singleton is the same object across all circuits/sessions. The documentation is as follows.
DI creates a single instance of the service. All components requiring a Singleton service receive the same instance of the service.
Of course "all components" can mean all components in a single circuit/session. Or it can mean all components across all circuits/sessions. I can see how if the "all components" is per circuit/session, then scoped is the same as singleton for most (all) use cases. But if singleton is a single instance across ever circuit/session, then they differ - a lot.
So what exactly is going on for scoped & singleton services on Blazor server?
thanks - dave