Столкнувшись с необходимостью где-то временно сохранять данные в решении для SharePoint, сразу вспомнил про службу распределенного кэша. Начал искать варианты использование этой службы в коде, но гугление, ничего не дало; просмотр исходного кода библиотек SharePoint окончательно расстроил: все нужные классы помечены как private, надежда использовать встроенный механизм растворилась.
Но сдаваться не в наших традициях, поэтому сразу оформился вариант непосредственно использовать службу AppFabric DataCache. Оказалось, что использовать её вообще проще простого. Нужно, чтобы служба была установлена, и хосты SharePoint были к ней подключены. Но если служба распределенного кэша настроена и работает, то это условие уже выполняется автоматически. Так что устанавливать и настраивать дополнительно ничего не нужно. Единственно что требуется, так это создать собственный кэш (если конечно мы не хотим использовать кэш по умолчанию default). Создается кэш с помощью команды PowerShell New-Cache (подробно об администрировании кэша смотри тут). Программным путём создать кэш, судя по всему, нельзя, по крайней мере, на официальных страницах Microsoft я ничего об этом не нашёл.
На программном уровне работа идет через класс DataCache. Получить его нужно с помощью класса DataCacheFactory.
Конфигурация задаётся или с помощью конфигурационного файла:
Или программно, например, так:
Пример записи в кэш:
Чтение из кэша:
CachingManager здесь - мой класс, возвращающий DataCache по имени. Используется SPSecurity.RunWithElevatedPrivileges, так как работа с кэшом требует особых разрешений, которых у обычного пользователя может не быть.
Комментариев нет:
Отправить комментарий