В общем,
Session + Async = fail
Вы в безопасности в обратных вызовах и перед тем, как переходить в асинхронный код, но пока вы работаете параллельно, вы неполучить полное состояние сеанса.
Однако есть несколько обходных путей.Самым простым из них является
[SessionState(System.Web.SessionStateBehavior.ReadOnly)]
на уровне контроллера, который обеспечивает, очевидно, доступ только для чтения к значениям сеанса.Он будет работать параллельно, пока вы не попытаетесь записать в сессию.Вы также можете реализовать свой собственный HttpHandler, но это немного сложнее.