Уже несколько лет мы запускаем веб-приложение на IIS, настроенное как веб-сад (4 рабочих процесса).Мы используем кэширование памяти только в одной (но важной) части приложения.
Мы делаем каждую секунду вызов ajax на страницу ahsx, которая выполняет длинный процесс и отслеживает то, что происходит, используяHttpRuntime.Cache (позже мы перешли на MemoryCache.Default).
Недавно мы переехали на новый сервер с IIS 10, а затем начали получать неожиданные результаты.Каждый вызов ajax теперь переходит к «случайному» рабочему процессу, поэтому мы не всегда получаем кэшированные данные.После некоторого прочтения мы теперь понимаем, что именно так должен работать веб-сад, т. Е. Каждый рабочий процесс имеет свою собственную память, и не все запросы отправляются одному и тому же рабочему процессу, поэтому кэшированные данные не всегда присутствуют.
Теперь мы изменили нашу настройку, чтобы избежать веб-сада, и это решает проблему кэширования.Итак, мой вопрос: как это возможно, что когда мы работали с IIS 7.5, все эти запросы Ajax обрабатывались одним и тем же рабочим процессом?Поскольку я не думаю, что кэш был разделен между процессами, по крайней мере, он не должен.
Я не могу найти ничего, что говорит, что это должно вести себя по-разному в версии IIS.