Общие данные в приложении ASP.NET - PullRequest
2 голосов
/ 19 марта 2010

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

Все запросы будут запрашивать одни и те же данные, поэтому имеет смысл иметь один кэш данных в памяти, доступный для всех запросов.

Каков наилучший способ создания единственного доступного экземпляра объекта, который я могу использовать для хранения и доступа к этим кэшированным данным? Я рассмотрел HttpApplication, но, очевидно, новый экземпляр этого создан для параллельных запросов, и поэтому он не соответствует моим потребностям.

Ответы [ 2 ]

2 голосов
/ 19 марта 2010

Во-первых, вы можете кэшировать ответ. Смотрите здесь: Как кэшировать в ASP.NET с помощью Visual C # .NET

При желании вы можете вручную загружать файлы в память и сохранять их содержимое в статических полях. Они будут распределены между всеми клиентами одного домена приложения.

В любом случае, это будет занимать память сервера. Убедитесь, что у вас достаточно.

0 голосов
/ 19 марта 2010

Используйте this.Cache.Add / Get

Этот API-интерфейс кеша прост и отлично работает в большинстве случаев.

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