Область применения HttpContext.Current.Cache

Если у меня будет следующая строка на нескольких веб-сайтах, работающих на одном сервере, будут ли проблемы с записью приложения в одну и ту же запись кэша?

HttpContext.Current.Cache["SearchResults"] = myDataTable;

Я знаю, что в документах говорится, что для каждого домена приложения существует один кэш, но я не совсем понимаю, что это значит.

https://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache Для каждого домена приложения существует один экземпляр класса Cache. В результате объект Cache, возвращаемый свойством Cache, является объектом Cache для всех запросов в домене приложения.

1 ответ

Решение

Домен приложений - это механизм (похожий на процесс в операционной системе), используемый в Общей языковой инфраструктуре (CLI) для изоляции исполняемых программных приложений друг от друга, чтобы они не влияли друг на друга.

Поэтому, когда вы пишете в кеш, он будет храниться в памяти для этого домена приложения, и если у вас есть веб-сад (с несколькими рабочими процессами) или веб-ферма, то запрос может обслуживаться diff работающим proc / node, а затем этим узлом / У работающего процесса нет доступа к кешу, так как это полностью другой домен приложения.

Таким образом, в нем говорится, что кэш специфичен для отдельного домена приложения. Чтобы решить вышеуказанную проблему, вам нужно найти хранилище централизованного кэша.

Другие вопросы по тегам