Как, где хранить объекты в разных областях в Asp.net 2.0

StackOverflow https://stackoverflow.com/questions/306946

  •  08-07-2019
  •  | 
  •  

Вопрос

нужно попросить вас о помощи.

У меня запущено веб-приложение в Net 2.0.
Я хочу спросить, какое хранилище (кеш, сессия, файл) я должен использовать для своих объектов, поскольку они имеют разную область использования. Можно разделить на несколько групп:
1) объекты, связанные непосредственно с посетителем (например, сведения о посетителе, полученные после аутентификации)
2) объекты, которые используются для каждого посетителя, поэтому сфера его применения (некоторые исходные данные, общие данные)

Большинство этих объектов получают данные из веб-службы, что дорого.

Итак, какой мой лучший выбор, учитывая скорость, память, доступность и что еще я должен посмотреть.

Любая помощь приветствуется. Спасибо, Х.

Это было полезно?

Решение

<Ол>
  • Объекты, связанные непосредственно с посетителем, должны храниться в Session , хотя чрезмерное использование Session и многих пользователей может привести к проблемам с масштабируемостью.

  • Объекты, которые являются общими для каждого посетителя, должны храниться в Cache , поэтому они будут выходить за рамки, если к ним не часто обращаются, чтобы можно было восстановить память (не говоря уже о добавлен стимул зависимостей). В тех случаях, когда вы знаете, что объект должен быть доступен немедленно, независимо от того, сколько времени прошло с момента последнего обращения к нему, вы должны сохранить этот объект в Application .

  • Другие советы

    Элемент 1. Сеанс, скорее всего, будет наилучшим, поскольку он предназначен для каждого пользователя, однако обязательно ограничьте количество элементов в нем, так как существуют проблемы с масштабированием и соображения, касающиеся веб-фермы.

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

    В целом, в веб-приложении я настоятельно рекомендую файлы ПРОТИВ, так как вам придется беспокоиться о безопасности потоков.

    Объекты, относящиеся к посетителю, должны храниться в сеансе. Это уникально для каждого посетителя, но, как правило, часто сбрасывается, это также плохо масштабируется при переходе в среду с несколькими серверами.

    Объекты, относящиеся к приложению в целом, должны храниться в кэше ASP.NET.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top