-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Description
I have aspnet core web api project, so I wanted to use Redis provider for clustering and storage.
Program.cs was like this
int db = 2;
string redisConnStr = "localhost:6379";
builder.Host.UseOrleans((host, builder) =>
{
builder.AddRedisGrainStorage("RedisGrainStorage", optionsBuilder => optionsBuilder.Configure(options =>
{
options.ConnectionString = redisConnStr;
options.UseJson = true;
options.DatabaseNumber = db;
}));
builder.UseRedisClustering(options =>
{
options.ConnectionString = redisConnStr;
options.Database = db;
});
builder.Configure<ClusterOptions>(options =>
{
options.ClusterId = "_basket_cluster";
options.ServiceId = "_basket_service";
});
builder.Configure<EndpointOptions>(options =>
{
options.AdvertisedIPAddress = IPAddress.Loopback;
options.GatewayListeningEndpoint = new IPEndPoint(IPAddress.Any, EndpointOptions.DEFAULT_GATEWAY_PORT);
options.SiloListeningEndpoint = new IPEndPoint(IPAddress.Any, EndpointOptions.DEFAULT_SILO_PORT);
});
builder.ConfigureLogging(logging => logging.AddConsole());
});
builder.Services.AddTransient<IBasketActor, BasketActor>();
And I have a grain with name is BasketActor
Then when I want to persistence my state with IPersistence
[StorageProvider(ProviderName = "RedisGrainStorage")]
public class BasketActor : Grain, IBasketActor
{
public BasketActor(
[PersistentState("basket", "RedisGrainStorage")] IPersistentState<BasketState> basket
)
{
}
}
And I have a grain with name is BasketActor
Then when I want to persistence my state with IPersistence
I am getting error this;
** Error while validating the service descriptor 'ServiceType:Basket.Actors.IBasketActor Lifetime: Transient ImplementationType: Basket.Actors.BasketActor': Unable to resolve service for type 'Orleans.Runtime.IPersistentState`1Basket.Actors.BasketState]' while attempting to activate 'Basket.Actors.BasketActor'.**
I've mentioned before in discord
Thanks.
zharchimage
Metadata
Metadata
Assignees
Labels
No labels