【发布时间】:2018-02-01 00:09:30
【问题描述】:
我有一个用ASP.NET 4.0 编写的 Intranet 应用程序,可以生成 Excel 报告。某些报告最多可能需要 2 分钟才能创建。
这里的问题是用户在等待报告完成时无法继续工作。
我想做的是:
- 用户要求服务器生成报告
- 服务器启动报告并输出一条消息,说明 报告将在准备好后通过电子邮件发送给他。
- 当服务器处理报告时,用户可以继续 使用内网
- 报告准备好后,服务器将 Excel 文件保存在 文件夹并将文件的链接通过电子邮件发送给用户
明确地说,我知道如何从 .NET 代码生成 Excel 文件。我不知道如何在后台创建它。
我该怎么做?
【问题讨论】:
-
在 Google 上搜索要写入 Excel 文件的库。有几个。
-
据我了解,问题不在于创建 excel 文件,而是需要在后台任务中创建
-
完全正确
-
您可能想查看 Hanselman 先生的博客。它提供了一个有用的 szenarios 列表,可能会解决您的问题。 hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx
-
请记住,Hanselman 的博客提供了有关如何在网络服务器中执行此操作的建议。但是,在 Web 服务器上执行此操作通常不是您想要执行的操作。您通常希望在单独的应用程序中执行此操作,例如 Windows 服务或 Azure 函数。 Hanselman 建议的一些技术(例如 Hangfire)可用于 Windows 服务。或者您可以通过 Web API 或消息队列等进行通信。