我正在使用带有 Sql Server 2000 数据库的 C# 编写的 ASP.net 应用程序。我们有几份 PDF 报告供客户用于满足他们的业务需求。问题是这些报告需要一段时间才能生成(> 3 分钟)。通常最终发生的情况是,当用户请求报告时,请求超时会在 Web 服务器有时间完成生成报告之前终止请求,因此用户永远没有机会下载文件。然后用户将刷新页面并重试,这将重新开始整个报告生成过程,但仍然会超时。(不,我们现在不缓存报告;这是我正在努力争取的……)。
你如何处理这些场景?我的脑海中有一个想法,它涉及发出异步请求以开始生成报告,然后使用一些 javascript 来定期检查状态。一旦状态表明报告已完成,然后对实际文件发出单独的请求。
有没有我没有看到的更简单的方法?