asp.net – 使用HttpHandler和IIS 5.1在iPhone上播放Quicktime视
我正在尝试使用HttpHandler从一个ASP.NET Web应用程序将QuickTime视频流式传输到iPhone.从IIS 5.1(
Windows XP)托管Web应用程序时,视频播放器将打开,然后显示错误“服务器未正确配置”.但是,使用IIS 7.5(Windows 7)时,视频播放正常.
生产环境正在运行IIS 6.0并且存在同样的问题,尝试通过Mobile Safari在iPhone上播放视频会显示上述错误. 我检查了Http Headers,它们在两个服务器之间看起来几乎是相同的(除了一些,比如Server头,显然会有所不同),除了它们以不同的顺序出现,尽管我怀疑这个造成了这个问题. 根据Google网上论坛上的this thread,添加’Accept-Ranges:bytes’标题可能有所帮助,尽管这对我们没有任何影响.我还添加了ETag标题,没有任何运气. 实际负责发送文件的代码如下所示: Context.Response.Buffer = true; Context.Response.ContentType = "video/x-m4v"; Context.Response.AppendHeader("Content-Disposition","filename="Video.m4v""); Context.Response.AppendHeader("Content-Length","23456789"); Context.Response.AppendHeader("Accept-Ranges","bytes"); Context.Response.AppendHeader("ETag",GetETag(path)); Context.Response.TransmitFile(path); 传输文件的上述代码似乎运行正常,视频文件在所有桌面浏览器中以及在Windows 7上从IIS 7.5托管时正确播放.只有在尝试使用Mobile Safari在iPhone上播放视频文件时才会出现此问题.上面的代码,ASP.NET Web应用程序托管在IIS 5.1或IIS 6.0上. 有没有其他人经历过这样的事情,并对我能做些什么来获得这个工作有任何想法? 解决方法
为什么将Response.Buffer设置为true?
除非您还确保服务器支持HTTP范围请求,否则您不能简单地添加“Accept-Ranges”标头.如果客户端播放器要求支持Range请求并且服务器拒绝处理它们,那么请求将被拒绝似乎是合乎逻辑的. 您可以尝试使用Fiddler作为反向代理,并查看IPhone是否发出Range请求. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何判断正在查看的网站位置?
- asp.net-mvc – 单元测试ASP.NET MVC中的自定义模型绑定2
- 有没有办法确保(仅)在HTTPS协议上运行ASP.NET应用程序?
- 关于WCF的一个非常“无语”的BUG!
- 在asp.net core中使用托管服务实现后台任务
- 使用Asp.net Web API时,使用DataContract和DataMember属性有
- asp.net-mvc – ASP.NET MVC:正确的地方为部分视图?
- asp.net – .Net更改元素ID
- asp.net奇怪的异常每隔三分钟左右
- asp.net-mvc – Asp.Net Mvc – 在ActionResult.Execute之前