クライアントが自分の Web サイトからコンテンツ (ビデオ) をダウンロードするための HttpHandler (.ashx) を作成しました。最初は WriteFile メソッドを使用していましたが、大量のメモリが必要であることに気付き、それを TransmitFile メソッドに変更することにしました。
しかし、奇妙なことが 1 つ起こりました。複数のダウンロードを行うことができなくなりました。ダウンロードが完了するのを待ってから、別のダウンロードを開始する必要がありました。
基本的にコードは次のようになります。
System.IO.FileInfo file = new System.IO.FileInfo(file_path);
context.Response.Clear();
if (flagH264)
{
context.Response.ContentType = "video/mp4";
}
else
{
context.Response.ContentType = "video/x-ms-wmv";
}
context.Response.AddHeader("Content-Length", file.Length.ToString());
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + name);
//context.Response.WriteFile(file_path.Trim());
context.Response.TransmitFile(file_path.Trim());
context.Response.Flush();
誰でもこの問題が何であるか知っているかもしれませんか?