Задание таймера Sharepoint и доступ к объекту HTTPRuntime Cache - PullRequest
3 голосов
/ 28 января 2011

Я планирую создать задание таймера Sharepoint и настроить его для запуска на всех интерфейсных веб-машинах нашей фермы.

Задание таймера будет считывать данные из экземпляра SP SQL Server и, надеюсь, обновлять его дообъект кэша HTTPRuntime на 2 веб-FTE, которые у нас есть.

Вопрос в том, будет ли задание таймера иметь доступ к объектам кэша ASP.net или нет, потому что они запускаются из owstimer.exe?

Если нет, как лучше всего обновить элемент кэша на 2 веб-интерфейсах?Я должен упомянуть, что в настоящее время у нас нет сайтов IIS, настроенных для отдельного доступа.Т.е. у нас есть один URL-адрес для доступа к ферме, и наш переключатель содержимого решает, какая машина его получит.

Так возможно ли это?

Ответы [ 2 ]

1 голос
/ 30 января 2011

Это не обязательно должен быть HTTP-кэш времени выполнения, если вы хотите получить к нему доступ через WFE, верно?Вы могли бы сохранить это в списке, возможно?Если это слишком тяжеловесно, неэффективно или просто звучит глупо для вас, вы могли бы дать WFE возможность извлекать (или аннулировать) кэшированный элемент, добавив ваше задание таймера в хэш-таблицу свойств SPWebApplication.Эту хеш-таблицу нельзя использовать для хранения самого элемента, поскольку она ограничена примитивами, такими как DateTime, bool, string, int и т. Д.

1 голос
/ 28 января 2011

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

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

Еще один вариант - изучить memcached для .NET , проект, позволяющий получить доступ к кешу из других процессов.

...