st7*_*t78 8 asp.net-mvc download
我们正在实现长时间运行的进程,用asp.net 3下载数据库内容为xml.
总文档生成时间约为3-5分钟,我们希望尽快回复第一个字节.我们已经覆盖System.Web.Mvc.FileResult并正在尝试执行以下操作:
protected override void WriteFile(HttpResponseBase response)
{
Stream outputStream = response.OutputStream;
byte[] header = xmlExportService.XmlHeader();
response.Flush();
outputStream.Write(header, 0, header.Length);
response.Flush();
//// some long running generation here
}
Run Code Online (Sandbox Code Playgroud)
在Windows 7下的本地iis上,我在浏览器中收集"保存文件"对话框.在生产时,Windows Server 2008 R2在生成整个文件之前没有对话框.
有任何想法吗?
不确定这是否对任何人有帮助,但如果启用了HTTP压缩,Response.Flush将无法"正常工作".我们在服务器上启用了动态压缩,对Response.Flush的调用只会挂起.经过一些研究,它与服务器正在等待所有输出的事实有关,因此它可以"压缩并发送它".
由于我们使用MVC,我正在考虑使用属性来动态控制是否为非静态页面启用了压缩.现在,我们在视图中删除了Response.Flush调用.
| 归档时间: |
|
| 查看次数: |
3668 次 |
| 最近记录: |