从数据库中检索大字符串并将它们连接起来

时间:2013-05-28 09:29:00

标签: c# sql asp.net-mvc

我必须从数据库中收集一些巨大的字符串(xml部分),将它们连接到一个大的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结束。

那么我可以使用什么?

1 个答案:

答案 0 :(得分:2)

response.BufferOutput = false;的开头添加WriteFile

并在每次写作时调用Flush