Наше ASP. Net MVC приложение размещено на Azure. Недавно один из наших пользователей сообщил о проблеме, что он может видеть данные, связанные с другим пользователем. мы проверили это на наших 3-4 ноутбуках и смогли воспроизвести. этот сценарий случался 2-3 раза, но не часто. Это странно. мы все еще не смогли выяснить root причину этой проблемы. мы не используем метод кэширования вывода. мы используем проверку подлинности с помощью форм и время ожидания сеанса остается открытым только в течение 30 минут. мы также не использовали переменную stati c для хранения сессии.
На Azure у нас реализованы профили менеджера traffi c. существует 2 экземпляра этого приложения, и приоритет был установлен соответствующим образом, чтобы один экземпляр был недоступен, когда другой выходит из строя.
при проверке кода. Мы нашли код ниже из Global.asax, но не знаем точное использование этого код. это может быть проблемой, но не уверен 100%. при отладке вызывается каждый раз, когда выполняется действие.
void Application_AcquireRequestState(object sender, EventArgs e)
{
if (HttpContext.Current.Cache["RecycleCheck"] == null)
{
HttpContext.Current.Cache.Insert("RecycleCheck", "1", null, DateTime.UtcNow.AddDays(2), System.Web.Caching.Cache.NoSlidingExpiration);
appendLogFile("Recycle Took Place");
}
if (HttpContext.Current.Session == null || Session["CurrentUser"] == null) return;
HttpContext.Current.User = (CustomPrincipal)Session["CurrentUser"];
}
Как смешивается сессия? есть ли ошибка в Azure IIS Server или мы что-то упустили в нашем коде? как избежать смешивания сессии?