Кеширование времени выполнения WCF - PullRequest
0 голосов
/ 18 февраля 2010

Привет! Я использую следующий код для кэширования объектов.

HttpRuntime.Cache.Insert ("Doc001", _document); HttpRuntime.Cache.Remove ( "Doc001");

Хотелось бы узнать, где хранится кеш? (На клиентском ПК или сервере IIS)

Это способ сохранения объектов кэша, и добавление и удаление кэша таким образом повлияет на других клиентов, например, у меня подключено 2 клиента, и оба хранят кэш " HttpRuntime. Cache.Insert ("Doc001", _document);"и один клиент удаляет кэш, он удаляется только на уровне клиента?

Ответы [ 2 ]

1 голос
/ 18 февраля 2010

Это будет зависеть от того, где вы пишете этот код. Если вы делаете это в службе WCF, то объекты будут храниться в памяти процесса, в котором размещается эта служба (если IIS, то w3p.exe). Кэш будет использоваться всеми клиентами службы, что означает, что если клиент удаляет элемент из кэша, другие клиенты также увидят его удаление.

При использовании этой конструкции важно знать, что среда выполнения может принять решение об истечении срока действия объектов из кэша при определенных обстоятельствах (например, при нехватке памяти), поэтому всегда проверяйте наличие объекта в кэше перед использованием это: не думайте, что если вы положите его туда, вы найдете это позже.

Вы можете прочитать подробнее о кэшировании на MSDN .

0 голосов
/ 18 февраля 2010

Кэширование происходит на веб-сайте (MVC).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...