Ваш вопрос немного расплывчатый, но я думаю, что то, что вы называете "таймаутом сеанса IIS", на самом деле является остановкой и перезапуском пула приложений.Исходя из этого, вы, вероятно, используете хранилище сеансов в памяти, и, поскольку оно привязано к процессу, ваши сеансы исчезают, когда это делает пул приложений.
В рамках сеансов для хранения используется IDistributedCache
.Поставщик по умолчанию для этого DistributedMemoryCache
.Несмотря на название, оно на самом деле не распространяется;это просто реализация IDistributedCache
, которая использует память, но все еще страдает от всех проблем любого кеша на основе памяти.
Короче говоря, вам нужно постоянное решение распределенного кэширования, такое как SQL Server или Redis.,См .: https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed?view=aspnetcore-2.2#establish-distributed-caching-services.
После того, как вы это настроите, ваши сеансы также будут постоянными, и время их ожидания истечет только тогда, когда они действительно должны.