Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В примере AspNetCachingIntegration показано, как использовать кэш выходных данных ASP.NET с моделью программирования WCF WEB HTTP. В этом разделе основное внимание уделено возможности интеграции выходного кэша ASP.NET.
Демонстрирует
Интеграция с кэшем вывода ASP.NET.
Обсуждение
В примере используется AspNetCacheProfileAttribute для применения кэширования выходных данных ASP.NET в службе Windows Communication Foundation (WCF). Атрибут AspNetCacheProfileAttribute применяется к операциям службы и предоставляет имя профиля кэша для файла конфигурации, который будет использован для ответов из заданной операции.
В файле Service.cs примера проекта службы Service, как операция GetCustomer, так и операция GetCustomers помечены с помощью AspNetCacheProfileAttribute, что указывает имя профиля кэша "CacheFor60Seconds". В файле web.config проекта службы профиль кэша CacheFor60Seconds предоставляется в элементе <caching><system.web>. Для этого профиля кэша значение атрибута duration равно 60, поэтому ответы, связанные с этим профилем, кэшируются в кэше вывода ASP.NET в течение 60 секунд. Кроме того, для этого профиля кэша атрибут varyByParam задан значением «format», поэтому запросы с разными значениями параметра format строки запроса кэшируются отдельно. Наконец, атрибут профиля кэша varyByHeader имеет значение Accept, поэтому запросы с различными значениями заголовков Accept кэшируются отдельно.
В файле Program.cs из проекта «Клиент» показывается, как можно разработать клиент с помощью HttpWebRequest. Заметьте, что это лишь один из способов доступа к WCF-службе. Кроме того, можно получить доступ к службе с помощью других классов платформа .NET Framework, таких как фабрика каналов WCF и WebClient. Другие примеры в пакете SDK (например , пример службы "Базовый HTTP ") иллюстрируют использование этих классов для взаимодействия со службой WCF.
Important
Кэширование выходных данных — это функция оптимизации производительности.
varyByParam И varyByHeader параметры кэшируют альтернативные представления ответа на основе характеристик запроса. Не полагайтесь на вариации кэша для изоляции таких типов контента, как персонализированные ответы, ответы, специфичные для арендатора, зависящие от авторизации, или другие конфиденциальные ответы. Обеспечьте любую требуемую изоляцию независимо от конфигурации кэша.
Чтобы запустить пример
Этот образец состоит из трех проектов.
Служба: проект веб-приложения, включающий службу WCF HTTP, размещенную в ASP.NET.
Клиент: проект консольного приложения, который делает вызовы к службе.
Common: Общая библиотека, содержащая тип клиента, используемый клиентом и службой.
Во время выполнения клиентского консольного приложения клиент совершает запросы к службе и выводит в окно консоли нужные сведения из ответов.
Чтобы запустить пример
Откройте решение для примера интеграции кэширования ASP.NET.
Нажмите Ctrl+Shift+B, чтобы построить решение.
Если окно Обозреватель решений еще не открыто, нажмите клавиши CTRL+W+S.
В окне Обозреватель решений нажмите правой кнопкой на проект Службы и выберите Запустить новый экземпляр. Запускается сервер разработки ASP.NET, на котором размещается служба.
В окне Обозреватель решений щелкните правой кнопкой мыши на проекте Client и выберите "Запустить новый экземпляр".
На клиенте открывается окно консоли с URI запущенной службы и URI HTML-страницы справки для запущенной службы. HTML-страницу справки можно просмотреть в любой момент времени, введя URI этой страницы в браузере.
Во время выполнения примера, клиент регистрирует статус текущего действия.
Чтобы завершить клиентское консольное приложение, нажмите любую клавишу.
Чтобы прекратить отладку службы, нажмите клавиши SHIFT+F5.
В области уведомлений Windows щелкните правой кнопкой мыши значок сервера разработки ASP.NET и нажмите кнопку "Остановить".