У нас есть проблема с кэшированием HTTP-ответов при использовании служб WCF RIA с Silverlight.
На стороне сервера у нас есть простой метод GET DomainService без указанного кэширования, например:
[OutputCache(OutputCacheLocation.None)]
public IQueryable<SearchResults> GetSearchResults(string searchText);
Выдает исключение DomainException, когда пользователь не аутентифицирован (то есть, когда срок действия FormsAuthenticationCookie истекает).Это как задумано.
Но когда пользователь проходит повторную аутентификацию и запрос снова вызывается с тем же параметром searchText, запрос никогда не попадает на сервер (без попадания в точку останова; Fiddler не показывает отправленный http-запрос).
Я думаю, это связано с тем, что при возникновении исключения на сервере HTTP-ответ имеет свойство 'Cache-Control' , установленное в 'private' , икогда клиент хочет выполнить тот же запрос позже (после того, как пользователь вошел в систему), тогда браузер даже не отправляет запрос на сервер.
Если мы введем другой параметр поиска, тогда запросповторное выполнение без проблем.
Есть ли способ обеспечить, чтобы в http-ответе всегда было «без кэширования» - даже если он не возвращается нормально?
UPDATE1 Проблема возникает только при развертывании в IIS - при тестировании в Visual Studio с использованием Casini или IIS Express все работает нормально.
UPDATE2 Я обновил вопрос, чтобы отразить новоезнание.