Общий кеш между приложениями (asp.net) на одном физическом компьютере

У нас есть несколько виртуальных приложений внутри одного основного (корневого) приложения.

Как разделить кэш между этим виртуальным приложением и основным приложением, если они расположены (и всегда будут) на одной физической машине?

По кешу я предполагаю System.Runtime.Caching или System.Web.Caching. Надеюсь, что мне не нужно настраивать AppFabric Caching для этого...


person Dmitry Schetnikovich    schedule 15.08.2010    source источник


Ответы (3)


Не может быть сделано. Несколько приложений asp.net находятся в собственном домене приложения, а домен приложения контролируется IIS и может циклически выполняться в любое время. Это означает, что любое кэширование ДОЛЖНО использовать сетевые сценарии (удаленное взаимодействие и т. д.), а кеш лучше подходить вне контроля ASP.NET (системная служба).

person TomTom    schedule 15.08.2010

Memcached — это бесплатный кеш с открытым исходным кодом, работающий как служба Windows. Вы можете очень легко выполнить кэширование между приложениями, просто определив ключ, который оба приложения будут использовать для поиска в объектах memcached.

person Tahbaza    schedule 15.08.2010
comment
Значит, это невозможно сделать с помощью System.Runtime.Caching или System.Web.Caching? Даже на одной машине? - person Dmitry Schetnikovich; 15.08.2010
comment
Конечно, вы можете использовать их для раскрытия своего собственного сервера, заново изобретая колесо memcached. :-) - person Steven Sudit; 15.08.2010

В то время как другие упоминали встроенный кэш ASP.NET (System.Web.Caching), обратите внимание, что .NET 4.0 представляет совершенно новую структуру кэширования, предназначенную для работы за пределами пространства имен System.Web.Caching:

Система.Время выполнения.Кэширование

http://msdn.microsoft.com/en-us/library/system.runtime.caching%28VS.100%29.aspx

Общий доступ к кэшу ASP.Net

person Mirodil    schedule 20.05.2013