Streaming de archivos de video grandes .net

Estoy tratando de transmitir un archivo grande en formularios web desde un HttpHandler. No parece funcionar porque no está transmitiendo el archivo. En vez de eso, leer el archivo en la memoria luego lo envía de vuelta al cliente. Busco una solución por todas partes y la solución me dice que transmiten el archivo cuando están haciendo lo mismo. Mi solución que corriente es esta:

using (Stream fileStream = File.OpenRead(path))
{
    context.Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(360.0));
    context.Response.Cache.SetCacheability(HttpCacheability.Public);
    context.Response.AppendHeader("Content-Type", "video/mp4");
    context.Response.AppendHeader("content-length", file.Length);
    byte[] buffer = new byte[1024];
    while (true)
    {
      if (context.Response.IsClientConnected)
     {
       int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
       if (bytesRead == 0) break;
       context.Response.OutputStream.Write(buffer, 0, bytesRead);
       context.Response.Flush();
     }
     else
     {
       break;
     }

   }
   context.Response.End();
}

Lo que sucede es para archivos pequeños si depuro el código, se reproducirá el video pero no hasta que llegue al contexto.Respond.End () línea. Pero para archivos grandes esto no funcionará porque está almacenando todo el archivo en la memoria, lo que traerá problemas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta