相关疑难解决方法(0)

在ASP.NET中流式传输文件的最佳方式

使用ASP.NET流式传输文件的最佳方法是什么?

似乎有各种方法,我目前在http处理程序中使用Response.TransmitFile()方法,该方法直接将文件发送到浏览器.这用于各种事情,包括从Webroot外部发送FLV到嵌入式Flash视频播放器.

但是,这似乎不是一种可靠的方法.特别是,Internet Explorer(7)存在一个奇怪的问题,浏览器只是在观看一两个视频后挂起.单击任何链接等都没有任何效果,并且在网站上重新运行工作的唯一方法是关闭浏览器并重新打开它.

这在其他浏览器中也会发生,但更不频繁.基于一些基本的测试,我怀疑这与文件流的方式有关...也许连接没有正确关闭,或者沿着这些线路.

在尝试了几个不同的东西后,我发现以下方法对我有用:

Response.WriteFile(path);
Response.Flush();
Response.Close();
Response.End();
Run Code Online (Sandbox Code Playgroud)

这解决了上述问题,查看视频不再导致Internet Explorer挂起.

但是,我的理解是Response.WriteFile()首先将文件加载到内存中,并且假设流式传输的某些文件可能非常大,这似乎不是一个理想的解决方案.

我很想知道其他开发人员如何在ASP.NET中传输大文件,特别是流式传输FLV视频文件.

asp.net flash streaming video-streaming

34
推荐指数
3
解决办法
5万
查看次数

标签 统计

asp.net ×1

flash ×1

streaming ×1

video-streaming ×1