Второй запрос от Media Player на веб-странице - PullRequest
0 голосов
/ 09 октября 2010

У меня есть веб-приложение ASP.NET, в котором объект Microsoft Media Player на странице (в IE) отправляет запрос на веб-страницу .aspx. На странице я использую TransmitFile, чтобы отправить обратно аудиофайл. Это прекрасно работает большую часть времени.

Но в некоторых случаях (комбинация версии IE и конкретного клиента, по крайней мере из того, что я вижу) выдается второй запрос с точно таким же URL-адресом. Единственное различие, которое я вижу между первым и вторым запросом, заключается в значении агента пользователя. Первый запрос будет иметь User-Agent: Windows-Media-Player/9.00.00.4508, а второй будет User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Этот второй запрос вызывает повторную отправку аудиофайла по сети, что является расточительным. Это то, чего я пытаюсь избежать.

У меня был связанный вопрос здесь , но в этом случае нет запроса Range. Это опять тот же самый точный запрос (те же заголовки, за исключением агента пользователя).

Я пытался подавить второй ответ (на основе user-agent в заголовке) со всеми видами ответов о статусе HTTP (304, 404, 500 и т. Д.). Это работает для некоторых клиентов, иногда, но иногда прерывается (Media Player просто не будет воспроизводить звук, даже если Fiddler покажет, что он был передан по первому запросу).

Я бы хотел "убедить" браузер, чтобы он не повторял второй запрос, если это возможно. В качестве второго варианта я хотел бы найти ответ на второй запрос, который не будет прерывать воспроизведение, но позволит избежать отправки всего аудиобуфера.

Ответы [ 3 ]

0 голосов
/ 18 октября 2010

Пожалуйста, предоставьте полный дамп заголовков, вы уверены, что оба запроса GET? Первым запросом может быть просто проверить, достаточно ли кэшированная версия.

Вторая мысль: попробуйте вернуть заголовок 'expires' для подавления проверки кэша.

0 голосов
/ 18 февраля 2011
0 голосов
/ 16 октября 2010

Единственное, о чем я могу думать, это то, что, возможно, у них установлен плагин / панель инструментов, которая пытается что-то сделать, когда обнаруживает медиа.

Я думаю, что VLC делает что-то подобное для Firefox, и я знаю, что для Firefox существует множество аддонов 'video downloader', возможно, есть эквиваленты, сделанные для IE.

Вы можете попытаться попросить клиента, у которого возникли проблемы, предоставить вам список своих дополнений (должно быть Tools -> Manage Add-ons в IE8).

Надеюсь, это поможет:)

РЕДАКТИРОВАТЬ: Еще одна вещь, которую вы можете проверить, это попросить их попробовать включить режим совместимости на вашем сайте и посмотреть, изменит ли он что-нибудь.

...