私はOWINセルフホストアプリケーションの下でMVCアクションを使用しています。これはクライアントにファイルの大部分を提供します。データはメモリ内で生成され、キャッシュされ、MVCアクションはを返します。MemoryStream
はキャッシュされたbyte[]
を指します。出力ストリームにOWIN自己ホストMVCを直接書き込む方法
データがキャッシュから直接読み取られ、OutputStream
にコピーされると予想しました。代わりに、データは私のMemoryStream
からインフラストラクチャによって作成された別のものにコピーされます。並行してリクエストをたくさん作るとき、私は、プロセスのメモリが成長見ることができます:
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StreamContent(new MemoryStream(content), content.Length)
{
Headers =
{
ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileNameStar = fileName,
Size = content.Length,
},
ContentType = MediaTypeHeaderValue.Parse(mediaType),
ContentLength = content.Length,
}
}
};
は、どのように私は、私はそれがより多くのメモリを占有しているコピーされることなく、直接私のキャッシュされたMemoryStream
を返すことを確認することができますか?