Можно ли использовать кэш в веб-сервисе? - PullRequest
5 голосов
/ 05 сентября 2011

В моем веб-приложении есть некоторые предварительно рассчитанные значения, которые хранятся в Page.Cache. В этот момент мне нужно перенести эту функциональность на веб-сервис.

Поэтому мне нужно ввести аналогичную функциональность в веб-сервисе - вычислить значения при первом вызове веб-метода и сохранить его в Cache.
Можно ли поместить некоторые значения в Cache (не в Application или Session - мне нужно удалить эти значения через некоторый промежуток времени) из веб-службы?

Ответы [ 4 ]

7 голосов
/ 05 сентября 2011

Вы всегда можете получить доступ к кэшу через статическое свойство HttpRuntime.Cache , даже если в данный момент у вас нет HttpContext.

5 голосов
/ 05 сентября 2011

Короче говоря - да, вы можете использовать кэширование в веб-сервисах.Вы должны выбрать правильную реализацию кэша на основе реализации сервиса.Например, если вы используете веб-службы ASP.NET, вы, вероятно, можете использовать ASP.NET Cache - доступный через HttpContext.Current.Cache .

Если выЕсли вы используете веб-сервисы WCF, то вам может потребоваться использовать другие библиотеки (кстати, веб-сервисы ASP.NET устарели, поэтому я все равно предложу веб-сервисы WCF).Если службы WCF помечены как совместимые с ASP.NET, инфраструктура ASP.NET и ее кэш будут доступны.Но у вас есть выбор размещения служб WCF без интеграции с ASP.NET, и в этом случае вам, вероятно, придется взглянуть на другой API-интерфейс кэширования - например, System.Runtime.Caching , если вы используете .NET4 (см. Краткое руководство по для использования кэша в памяти), в противном случае вы можете попробовать Блок приложения кэширования .

2 голосов
/ 05 сентября 2011

Вы должны быть в состоянии использовать:

HttpContext.Current.Cache.Insert(strName, objItem, null,
     DateTime.Now.AddMinutes(intMinutes), Cache.NoSlidingExpiration)

для кэширования элемента за указанный интервал времени.

1 голос
/ 05 сентября 2011

См. Стратегии кэширования веб-служб XML

Кажется, это старая, но хорошая статья.Я надеюсь, что вы сможете найти то, что вы ищете.

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