При связи с нашим веб-сервисом REST возвращается http-ответ с кодом состояния 304, указывающий, что запрошенный ресурс не изменился. Однако в нашем приложении WP7, использующем класс HttpWebRequest , телефону требуется ровно 2 минуты, прежде чем этот тип ответа будет успешно прочитан.
HttpWebRequest request = HttpWebRequest.Create("path/to/unchanged/resource") as HttpWebRequest;
request.Method = "GET";
request.BeginGetResponse(
new AsyncCallback(
(aysncResult) => {
// response is read correctly here... 120 seconds later
}), null);
Я вижу, что веб-служба немедленно отвечает 304 и данными тела нет, сам запрос не имеет тайм-аута, и наше приложение может успешно обрабатывать другие коды ответов [404, 201 и т. Д.]. Может ли проблема с кэшированием в браузере Silverlight?
Может кто-нибудь подтвердить, что они видели это раньше, или есть какие-либо мысли по этому вопросу?
Ура,
Алистер.
== Дополнительная информация ==
В результате WP7, ограничивающего определенные заголовки запроса , мы используем настраиваемый заголовок [If-Modified-Since] для всех запросов ресурсов. Этот пользовательский заголовок [X-If-Modified-Since] распознается брандмауэром перед веб-службой и изменяется обратно на стандартный заголовок. Я не уверен, связано ли это с проблемой, описанной выше.