Сессия InProc вам не поможет, поскольку она находится только на веб-сервере. Если вы переключаете серверы из-за балансировки нагрузки или при сбое, вы теряете сеанс. То, что вы ищете, это IDistributedCache
. Примеры использования Redis или SQL можно найти в документах (Серьезно, прочитайте их. Они потрясающие!)
Если вы хотите использовать Redis, вам нужно сначала установить пакет для него
Install-Package Microsoft.Extensions.Caching.Redis
После этого настройте его на свой ConfigureServices
метод:
public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedRedisCache(options =>
{
options.Configuration = "localhost";
options.InstanceName = "SampleInstance";
});
}
Затем добавьте .UseSession
к вашему Configure
методу:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
/*... omitted ...*/
app.UseCookiePolicy();
app.UseSession();
app.UseHttpContextItemsMiddleware();
app.UseMvc();
}
}