使用ASP.NET传输大型二进制文件的最佳实践是什么?

Xaq*_*ron 5 c# asp.net binary data-transfer

考虑一个包含以下代码的ASP.NET页面:

while (read)
{
   Response.OutputStream.Write(buffer, 0, buffer.Length);
   Response.Flush();
}
Run Code Online (Sandbox Code Playgroud)

应用程序应进行高性能调整,并处理数千个并发请求,主要目的是通过高速连接将巨大的二进制文件传输到客户端.我可以用做的工作ASP.NET page,用HTTP Handler,IHttpAsyncHandler,ISAPI filter和...

问题是为此目的的最佳选择是什么?

Kev*_*Kev 2

如果页面容易受到 I/O 限制,那么我会走异步之路。Stream但是您也应该在对象上使用异步读取方法(如果可用) 。

欲了解更多信息,请参阅:

FileStream 构造函数 - 带有异步示例

为了解决您通过套接字接收此数据的评论,您还会发现大多数System.Net.Sockets命名空间类都支持异步行为。