Можно ли подключиться к провайдеру кэша WCF? - PullRequest
2 голосов
/ 14 июня 2011

Когда в службе WCF REST включено кэширование, базовый код (разумеется) не запускается при последующих вызовах того же URI. Однако мне интересно, есть ли способ, которым мы могли бы подключиться к провайдеру кэширования, чтобы увидеть поступающий запрос и затем зарегистрировать его. Это делается для целей анализа или для отслеживания использования API.

1 Ответ

3 голосов
/ 14 июня 2011

Кэширование WCF REST выполняется модулем кэширования ASP.NET, который зарегистрирован для обработки событий HttpApplication.ResolveRequestCache и HttpApplication.UpdateRequestCache. Вам просто нужно обработать событие до ResolveRequestCache (наиболее подходящим будет BeginRequest) и запросить запрос непосредственно в HttpContext.Current.Request (вы можете использовать свойство InputStream для чтения чистого HTTP-запроса). Эти события обычно обрабатываются в файле Global.asax.

Имейте в виду, что кэширование может происходить на нескольких уровнях - клиент может иметь данные в своем собственном кэше, прокси-сервер может кэшировать данные и т. Д., Поэтому не обязательно все запросы, использующие кэшированный ответ, попадут на ваш сервер. Вы можете контролировать, где данные могут быть кэшированы, установив Location в профиле кэша.

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