У меня есть проект. NET Core 2.1 MVC, который я обновил до. NET Core 3.0 пошагово согласно этой ссылке . Проект использует IHttpContextAccessor
для хранения нескольких значений в коллекции HttpContext.Session
, и когда я запускаю проект с F5 в моей среде разработки, кажется, что все работает. Но когда я публикую sh проект на моем тестовом сервере, коллекция ключей сеанса пуста, и значений больше нет.
Поскольку код должен быть одинаковым в обеих средах, я думаю, он должен быть связан с как сессии настроены для проекта, но я не смог найти решение. Вот как настроен мой Startup.cs
:
public void ConfigureServices(IServiceCollection services)
{
...
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddDistributedMemoryCache();
services.AddSession();
...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseSession();
...
}
Я попытался сериализовать объект Session с помощью Newtonsoft, но результат был очень ограниченным:
{"IsAvailable":true,"Id":"44b1d511-e0cb-a1a3-c117-84033b80df25","Keys":[]}
К сожалению, проект не может быть запущен сам по себе но зависит от внешнего ввода, поэтому тестирование каждого сценария занимает значительное время. Прежде чем полностью свернуть проект, я хотел узнать, есть ли у кого-нибудь предложение о том, что я могу сделать, чтобы определить причину этого.