Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何保持ASP.NET运行_C#_Asp.net_.net_Web - Fatal编程技术网

C# 如何保持ASP.NET运行

C# 如何保持ASP.NET运行,c#,asp.net,.net,web,C#,Asp.net,.net,Web,下面是我的例子,我想用ASP.Net创建一个web应用程序, 我有一个简单的UI,它有两个文本框和一个名为“RUN”的按钮 这两个文本框分别表示名字和姓氏 用户可以输入值并单击“运行” 我有一个函数,可以访问Mongo数据库并获取所有的文档,其中名字和姓氏与用户要求的匹配 然后将结果写入输出文件“Excel工作表” 然后,“mongo”函数返回到“Button\u Click”函数 它将进入磁盘并上传excel表,并为用户提供一个保存“窗口”,以便用户可以下载该文件。 我只在我的本地机器上测试过

下面是我的例子,我想用ASP.Net创建一个web应用程序, 我有一个简单的UI,它有两个文本框和一个名为“RUN”的按钮 这两个文本框分别表示名字和姓氏 用户可以输入值并单击“运行”

我有一个函数,可以访问Mongo数据库并获取所有的文档,其中名字和姓氏与用户要求的匹配 然后将结果写入输出文件“Excel工作表” 然后,“mongo”函数返回到“Button\u Click”函数 它将进入磁盘并上传excel表,并为用户提供一个保存“窗口”,以便用户可以下载该文件。 我只在我的本地机器上测试过这个,似乎工作得很好,现在我不确定当我移动到另一台机器时它会如何工作。 但这不是我的问题

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

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


您可能需要阅读。

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

请为我读这个

用户单击“运行”按钮后,服务器将继续执行该过程,直到完成为止。服务器不知道用户是否正在等待或已关闭其浏览器。至少您可以花一些时间编写一个可读性好的问题。一个好的问题也能帮助你自己找到答案。