首页 > 解决方案 > 在 .NET Framework Web 应用程序中生成大型 .csv 文件(100 万行以上)

问题描述

我们在 Azure 中部署了一个 .NET Framework (4.8) Web 应用程序,它具有用户可以将原始数据导出到 .csv 文件的功能。数据集很大,可能有数百万行,大约 20 列。

以前,导出功能使用 OpenXML SDK 生成 .xslx 文件,但该过程太长(最多可能需要 2 小时)。此外,通常用户单击导出,然后关闭浏览器,有时应用程序域会被应用程序池生命周期回收,这导致文件生成永远不会在进程被终止时完成。

我们将文件格式更改为 .csv,现在处理一百万行大约需要 15 分钟。减少执行时间 = 减少应用程序域在文件生成结束之前被回收的机会。

但是,我们仍然不确定该文件是否会始终生成,并且我们担心将来(随着数据库不断增长)该进程会再次被轻松杀死。

我们目前正在考虑另一种方法,我一直在研究 Azure Web Jobs、Windows 服务等,但我没有找到任何可以满足我们需求的东西:根据用户请求从 Web 界面生成一个大文件,然后发送下载通过电子邮件链接。这个过程需要很快,我们需要确保它总是能完成执行。

我想知道你们中是否有人对如何解决这个问题有任何想法。

我们想知道如何从 Web 应用程序中提取该文件生成以及如何在用户请求时触发该文件(这意味着我们需要将参数传递给该文件生成)。

谢谢!

标签: asp.netazureperformancecsvopenxml-sdk

解决方案


推荐阅读