кэш asp.net внутри httpcontext - PullRequest
5 голосов
/ 06 мая 2011

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

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

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

1 Ответ

6 голосов
/ 06 мая 2011

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

Элементы, хранящиеся в HttpContext.Current.Request.Items, будут существовать только в течение этого запроса. Это полезно для хранения информации одного запроса, которая может быть прочитана / записана на нескольких уровнях вашего приложения.

...