これを試して:
Response.BufferOutput = false; //sets chunked encoding
Response.ContentType = "audio/mpeg";
using (var bw = new BinaryWriter(Response.OutputStream))
{
foreach (DataChunk leChunk in db.Mp3Files.First(mp3 => mp3.Mp3ResourceId.Equals(id)).Data.Chunks.OrderBy(chunk => chunk.ChunkOrder))
{
if (Response.IsClientConnected) //avoids the host closed the connection exception
{
bw.Write(leChunk.Data);
}
}
}
また、チャンク エンコーディングにまだ問題がある場合は、web.config ファイルに移動して、次の操作を行います。
<system.webServer>
<asp enableChunkedEncoding="true" />
</system.webServer>
ホストが接続を閉じていることについて上記で報告したエラーは、おそらくブラウザーを使用してページを開いており、ブラウザーがコンテンツ タイプを読み取るときに、メディア プレーヤーを開き、開かれた接続を持っていたユーザー自身を閉じてから閉じたことが原因で発生しています。 、そのエラーの原因となるため、これを回避するには、クライアントがまだ接続されているかどうかを定期的に確認する必要があります。
最後に、Web ページの不要なオーバーヘッドを回避するために aspx ページを使用している場合は、ジェネリック ハンドラー (.ashx) またはカスタム ハンドラーを使用し、これに .mp3 拡張子を設定します。
これが役立つことを願っています。