WCF RESTful сервис с varByParam и UriTemplate - PullRequest
3 голосов
/ 03 ноября 2011

У меня возникают проблемы при работе кэширования с использованием varByParam, когда я также использую UriTemplate для службы RESTful WCF.Однако varByParam работает правильно, когда я использую обычные параметры строки запроса.

[OperationContract]
[WebGet(UriTemplate = "/{appId}/CacheTest/{param}")]
[WebCache(Duration=300, VaryByParam="param")]
string CacheTest(string appId, string param);

Все, что делает CacheTest - возвращает текущее время.Я называю это следующими комбинациями: /1/CacheTest/1, /2/CacheTest/1, /1/CacheTest/2, /2/CacheTest/2.Каждый вызов возвращает разное время.

Когда я делаю это:

[OperationContract]
[WebGet]
[WebCache(Duration=300, VaryByParam="param")]
string CacheTest(string appId, string param);

Оба /CacheTest?appId=1&param=1 и /CacheTest?appId=2&param=1 возвращают одинаковое время.То же самое верно для /CacheTest?appId=1&param=2 и /CacheTest?appId=2&param=2.

Как я могу заставить первый случай вести себя как второй случай?Я пробовал VaryByCustom, но у меня нет доступа к параметрам внутри моего GetVaryByCustomString, если они не находятся в строке запроса.

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