OrleansContrib / SignalR.Orleans

SignalR backend based on Orleans.
MIT License
295 stars 64 forks source link

An entry with the key client is already present. SignalR.Orleans.Clients.ClientGrain,SignalR.Orleans #152

Open KSemenenko opened 1 year ago

KSemenenko commented 1 year ago

I have this strange error, seems my ClientGrain is not unique

System.AggregateException: One or more errors occurred. (An entry with the key client is already present.

System.AggregateException
One or more errors occurred. (An entry with the key client is already present.
Existing: ["interface.0": "MyApp.Grains.Abstractions.IClientGrain", "diag.asm": "MyApp.Grains", "type-name": "Client", "full-type-name": "MyApp.Grains.Client.Client", "diag.type": "MyApp.Grains.Client.Client,MyApp.Grains", "interface.1": "Orleans.IGrainWithStringKey"]
Trying to add: ["interface.0": "SignalR.Orleans.Clients.IClientGrain", "diag.asm": "SignalR.Orleans", "type-name": "ClientGrain", "interface.2": "Orleans.IGrainWithStringKey", "full-type-name": "SignalR.Orleans.Clients.ClientGrain", "diag.type": "SignalR.Orleans.Clients.ClientGrain,SignalR.Orleans", "interface.1": "SignalR.Orleans.Core.IHubMessageInvoker"]
Consider using the [GrainType("name")] attribute to give these classes unique names.) (The following constructor parameters did not have matching fixture data: MyAppTestApplication testApp)
  Exception doesn't have a stacktrace

System.InvalidOperationException
An entry with the key client is already present.
Existing: ["interface.0": "MyApp.Grains.Abstractions.IClientGrain", "diag.asm": "MyApp.Grains", "type-name": "Client", "full-type-name": "MyApp.Grains.Client.Client", "diag.type": "MyApp.Grains.Client.Client,MyApp.Grains", "interface.1": "Orleans.IGrainWithStringKey"]
Trying to add: ["interface.0": "SignalR.Orleans.Clients.IClientGrain", "diag.asm": "SignalR.Orleans", "type-name": "ClientGrain", "interface.2": "Orleans.IGrainWithStringKey", "full-type-name": "SignalR.Orleans.Clients.ClientGrain", "diag.type": "SignalR.Orleans.Clients.ClientGrain,SignalR.Orleans", "interface.1": "SignalR.Orleans.Core.IHubMessageInvoker"]
Consider using the [GrainType("name")] attribute to give these classes unique names.
   at Orleans.Metadata.SiloManifestProvider.CreateGrainManifest(IEnumerable`1 grainMetadataProviders, IOptions`1 grainTypeOptions, GrainTypeResolver grainTypeProvider) in /_/src/Orleans.Runtime/Manifest/SiloManifestProvider.cs:line 82
   at Orleans.Metadata.SiloManifestProvider..ctor(IEnumerable`1 grainPropertiesProviders, IEnumerable`1 grainInterfacePropertiesProviders, IOptions`1 grainTypeOptions, GrainTypeResolver typeProvider, GrainInterfaceTypeResolver interfaceIdProvider, TypeConverter typeConverter) in /_/src/Orleans.Runtime/Manifest/SiloManifestProvider.cs:line 24

SignalR.Orleans Version=7.1.0 Microsoft.Orleans Version=7.1.1