У меня есть приложение Silverlight (v3), которое использует WebRequest для отправки запроса HTTP POST на веб-страницу на том же веб-сайте, что и приложение Silverlight. Этот HTTP-запрос возвращает 302 (перенаправление) на другую страницу того же веб-сайта, за которой автоматически следует HttpWebRequest ( согласно документации ).
Нет ничего особенно особенного в коде, который выполняет запрос (он использует стек 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 не выполняет перенаправление, как другие браузеры ?
Заранее спасибо за любую помощь!
РЕДАКТИРОВАТЬ: Я бы предпочел не использовать HTTP-стек клиента Silverlight, так как к моим запросам знаний, выданным им, не относятся файлы cookie, являющиеся частью сеанса браузера, критически важные, включая проверку подлинности ASP.NET. файл cookie, который необходимо прикрепить к HTTP-запросам, выполняемым элементом управления Silverlight.
РЕДАКТИРОВАТЬ 2: Я обнаружил, что Internet Explorer проявляет это поведение только при выполнении запроса POST. Запрос GET перенаправляет успешно. Это кажется довольно плохим поведением, учитывая, сколько веб-сайтов в настоящее время работают в стиле Post-Redirect-Get.