Asp.net C# 异步调用 Web 服务方法

Asp.net C# Asynchronous call to Web Service method

我有以下场景:

1) 用户通过 Asp.net 网页上传文件。
2) 网页将文件传递给 FileFlowManagerBLL,FileFlowManagerBLL 检查文件并将其上传到数据库
3) 我想调用一个后台 web 服务方法,顺便说一句,在同一个项目中,这样 web 服务就可以从上传的文件中开始大量的数字运算。调用 Web 服务方法后,我想 return 将控件返回给用户,而不用等待它完成,显示一条消息,表明文件已成功更新,一旦数据处理完成,用户将收到一封电子邮件.
4) Web 服务在比方说 30 - 60 分钟或可能更长的时间内完成数字处理,并调用向用户发送电子邮件的相关代码。

我需要一些知识来实现​​第 3 步,即如何异步调用 Web 服务方法,以便 return 向用户提供控件并且 he/she 可以查看 Web 应用程序的其他页面在进行数字运算时。

一种方法是将 WCF 服务托管为 Windows 服务。您的初始 Web 服务(在检查文件后)可以将其写入特定目录。然后在您的 Windows 服务中,您可以创建一个 FileSystemWatcher 来查找该目录中的新文件,如果它找到任何可以调用您的处理方法。