Вы потеряете сеансы не только при перекомпиляции вашего сайта, но и при повторном использовании рабочего процесса IIS. Технически, это может произойти в любое время (есть способы минимизировать это, но я предпочитаю разрабатывать приложения, которые в любом случае могут пережить повторы рабочих процессов), поэтому, если сеансы важны, вам действительно нужно хранить они вне процесса.
ASP.NET поставляется со встроенным «сервером состояний», который является просто службой Windows, которая хранит состояние сеанса. Другой вариант - использовать хранилище состояний сеанса SQL Server.
Многие люди скажут вам, что сохранение состояния сеанса в SQL Server - это проблема производительности, но я не согласен: потеря сеансов из-за повторов процессов больше беспокоит, чем производительность SQL Server. Кроме того, сервер состояний ASP.NET работает быстрее, если это то, что вам действительно нужно (и если вы хотите пережить циклы питания, вы даже можете написать собственного провайдера, который хранит состояние в базе данных NoSQL!)