dotnet / dotnet/orleans

[Error Orleans 7]: Cannot resolve scoped service 'Orleans.Streams.StreamDirectory' from root provider.

Open
#8,219 10 comments 0 reactions 1 assignee Claimed by @ReubenBond View on GitHub
Needs: attention :wave:
Dominant language
C#
Stars
10.9k
Forks
2.1k
Avg merge
14h 42m
Merged PRs (30d)
354

Description

Hi
The exception is thrown when we create a singleton service and implement ILifecycleParticipant and then call GetStream from IStreamProvider:
```
async Task ILifecycleObserver.OnStart(CancellationToken cancellationToken)
{
Logger.LogInitializing(_logger, _hubName, _serverId);
_streamProvider = _clusterClient.GetStreamProvider(PusherStream.StreamProvider);
_serverStream = _streamProvider.GetStream(_serverId, PusherStream.ServerStream);
}
```
The participant state is ServiceLifecycleStage.Active.
The error detail:
```
2022-12-09 11:02:21 [Error-11:02:21.050 +03:30] Exception during Silo.Start System.InvalidOperationException: Cannot resolve scoped service 'Orleans.Streams.StreamDirectory' from root provider.
2022-12-09 11:02:21 at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator.ValidateResolution(Type serviceType, IServiceScope scope, IServiceScope rootScope)
2022-12-09 11:02:21 at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
2022-12-09 11:02:21 at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
2022-12-09 11:02:21 at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
2022-12-09 11:02:21 at Orleans.Runtime.Providers.SiloStreamProviderRuntime.GetStreamDirectory() in /_/src/Orleans.Streaming/Providers/SiloStreamProviderRuntime.cs:line 127
2022-12-09 11:02:21 at Orleans.Providers.Streams.Common.PersistentStreamProvider.GetStream[T](StreamId streamId) in /_/src/Orleans.Streaming/PersistentStreams/PersistentStreamProvider.cs:line 158
2022-12-09 11:02:21 at Orleans.Streams.StreamProviderExtensions.GetStream[T](IStreamProvider streamProvider, String ns, String id) in /_/src/Orleans.Streaming/Providers/IStreamProvider.cs:line 73
2022-12-09 11:02:21 at DoctorCode.Oms.Pusher.Sockets.OrleansHubLifetimeManager`1.Orleans.ILifecycleObserver.OnStart(CancellationToken cancellationToken) in D:\Projects\oms\pusher\DoctorCode.Oms.Pusher\Sockets\OrleansHubLifetimeManager.cs:line 68
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.