我有一个ASP.NET web应用程序,其中页面(在IE中)的Microsoft Media Player对象正在发出.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)
第二个请求导致音频文件第二次通过网络发送,这是浪费。这是我想要避免的。
我有一个相关的问题here,但在这种情况下没有范围请求。它又是一样的请求(相同的头文件,除了用户代理)。
我试图用所有类型的HTTP状态响应(304,404,500等)来抑制第二个响应(基于头中的用户代理)。这适用于某些客户端,有些时候,但偶尔会中断(媒体播放器将不会播放音频,即使Fiddler会显示它在第一次请求时被传送)。
我想“说服”浏览器,以避免第二次请求,如果可能的话。作为第二种选择,我希望找到对第二个请求的响应,它不会中断播放,但避免发送整个音频缓冲区。
即使在这里(不仅在客户机器上),我在多台机器上都会遇到此问题。其中一些香草IE从安装新鲜。 – 2010-10-16 00:32:11