2015-04-30 5 views
0

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

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

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

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

+0

Несколько приложений не записываются в один и тот же кеш. Это просто имя переменной кэша. – Vim

+0

У вас есть веб-сад или веб-ферма в вашем приложении? –

+0

Я не знаю, что это такое, Нет. Веб-сайты простые asp.net. – GER

ответ

1

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

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

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

Смежные вопросы