Przesyłanie strumieniowe dużych plików wideo .net

Próbuję przesłać strumieniowo duży plik w formularzach internetowych z HttpHandler. Nie działa, ponieważ nie przesyła strumieniowo pliku. Zamiast tego odczyt pliku do pamięci wysyła go z powrotem do klienta. Poszukuję rozwiązania, a rozwiązanie mówi mi, że przesyła strumieniowo plik, gdy robią to samo. Moje rozwiązanie to strumień:

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();
}

To, co dzieje się w przypadku małych plików, jeśli debuguję kod, będzie odtwarzać wideo, ale nie dotrze do linii context.Respond.End (). Ale w przypadku dużych plików nie zadziała, ponieważ przechowuje cały plik w pamięci, co może powodować problemy.

questionAnswers(1)

yourAnswerToTheQuestion