我必须从数据库中收集一些巨大的字符串(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结束。
那么我可以使用什么?
答案 0 :(得分:2)
在response.BufferOutput = false;
的开头添加WriteFile
。
并在每次写作时调用Flush
。