0

データベースからいくつかの巨大な文字列 (xml パーツ) を収集し、それらを 1 つの大きな xml に連結して、asp.net mvc でクライアントに送信する必要があります。

問題は、作成された xml が大きすぎてメモリに保持できない (OutOfMemoryException がスローされる) ことです。そのため、それをクライアントにストリーミングし、必要に応じて連結する方法を探しています。

自分の FileResult をリターンとして使用し、応答ストリームに直接書き込もうとしました

protected override void WriteFile(HttpResponseBase response)
{
    response.Write("<Accounts>");
    ...
    //Get the rows one by one and write them to the response stream here
    ...
    response.Write("</Accounts>");    
}

しかし、これも OutOfMemoryException で終了します。

それで、私は何を使うことができますか?

4

1 に答える 1

2

response.BufferOutput = false;の先頭に追加しWriteFileます。

そしてFlush、いくつかの書き込みごとに呼び出します。

于 2013-05-28T10:27:02.657 に答える