如何保持ASP.NET运行

时间:2016-10-13 21:58:28

标签: c# asp.net .net web

所以这是我的情况,我想用ASP.Net创建一个Web应用程序, 我有一个简单的UI,有两个文本框和一个名为" RUN" 这两个文本框用于名和姓 用户可以输入值并单击运行

我有一个访问Mongo数据库的函数,并获取所有名称与用户要求的匹配的文档 然后我将结果写入输出文件" Excel表格" 那个" mongo"函数返回" Button_Click"功能 进入磁盘并上传excel表并为用户提供一个保存窗口"这样用户就可以下载文件了。 我只在我的本地机器上测试了这个并且似乎工作正常,现在我不确定当我移动到另一台机器时它是如何工作的。 但这不是我的问题,

问题是,我想添加第三个文本框,用户可以在其中输入他/她想要转储excel文件的位置。可以在可从客户端和服务器访问的第三台服务器上#34;其中托管Web应用程序"。 原因是一些查询可能需要15或20分钟,并且用户不希望他/她的Web浏览器一直运行。所以在指定了所需的信息之后" firstName,LastName"以及要保存excel文件的位置,他可以单击运行并关闭Web浏览器。程序将在我假设的后台运行并将excel文件转储到指定位置并向用户发送一封电子邮件,通知该文件已准备好并已复制到所需位置,因此他/她以后可以查看。 这可行吗?当用户关闭他/她的浏览器时,程序将如何运行?我需要两个不同的项目吗?

2 个答案:

答案 0 :(得分:1)

对于ASP.Net中的那种长时间运行的过程,我们通常使用后台任务,例如hangfire

您可能需要阅读How to run Background Tasks in ASP.NET

答案 1 :(得分:1)

重点是您需要对服务器上的某个功能进行异步调用,以便为您完成工作,而无需用户在浏览器上等待。为此,您可以编写具有异步服务操作的 WCF服务 .WCF服务将托管在服务器上的Windows服务或IIS下,实现将包括您想要的功能(例如查询数据库) ,创建excel文件,在服务器上写文件并发送电子邮件),所有这些应该进入WCF服务实现,并且从ASP.NET只需单击按钮,您将获取用户输入并异步调用异步函数,即在您的WCF服务中定义(通过您将提供的合同)

阅读本文 How to: Implement an Asynchronous Service Operation