HttpWebRequest возвращает 404 для 302 только в Internet Explorer

У меня есть приложение Silverlight (v3), которое использует WebRequest для отправки HTTP-запроса POST на веб-страницу на том же веб-сайте, что и Приложение Silverlight. Этот HTTP-запрос возвращает 302 (перенаправление) на другую страницу того же веб-сайта, которому HttpWebRequest должен автоматически следовать ( согласно документации ).

Там ' s нет ничего особенного в коде, который делает запрос (он использует стек HTTP браузера, он не настроен на использование альтернативного встроенного стека HTTP Silverlight):

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Format("{0}?name={1}&size={2}", _UploadUrl, Uri.EscapeUriString(Name), TotalBytes));
request.Method = "POST";

Все это отлично работает в Firefox и Chrome; Silverlight выполняет HTTP-запрос POST, получает ответ 302 и автоматически выполняет HTTP-запрос GET для указанного URL-адреса перенаправления и возвращает его мне (я знаю это, потому что я использовал Fiddler для просмотра выполняемых HTTP-запросов). Однако в Internet Explorer (v8) Silverlight выполняет HTTP-запрос POST, а затем выдает исключение WebException с кодом ошибки 404!

Используя Fiddler, я вижу, что Silverlight / Internet Explorer успешно вернул код состояния 302 для запроса. , и я предполагаю, что код состояния 404 (и связанный с ним WebException), который я получаю в Silverlight, вызван тем, что, насколько мне известно, HTTP-запросы, выполняемые через стек браузера, могут возвращать только 200 или 404 из-за ограничений. Настоящий вопрос: почему Internet Explorer не выполняет перенаправление, как другие браузеры ?

Заранее благодарим за любую помощь!

РЕДАКТИРОВАТЬ: Я бы предпочел не использовать Silverlight HTTP-стек клиента, потому что, насколько мне известно, запросы, отправленные им, не включают файлы cookie, которые являются частью сеанса браузера, в том числе и ASP. Файл cookie проверки подлинности .NET, который мне нужно прикрепить к HTTP-запросам, выполняемым элементом управления Silverlight.

РЕДАКТИРОВАТЬ 2: Я обнаружил, что Internet Explorer демонстрирует такое поведение только при выполнении запроса POST. Запрос GET перенаправляется успешно. Это кажется довольно плохим поведением, учитывая, сколько веб-сайтов сейчас делают что-то в стиле Post-Redirect-Get.

8
задан Zoe 5 June 2019 в 18:49
поделиться