在ASP.NET中实现长时间运行的搜索

在ASP.NET中实现长时间运行的搜索,asp.net,search,Asp.net,Search,我正在asp.NET3.5中构建搜索页面。搜索需要一些时间(几秒钟到几分钟)。当前我使用AsyncMethodCaller调用搜索方法。AsyncMethodCaller方法在会话中存储搜索结果。我使用Ajax定时器检查搜索方法是否完成,然后显示结果 实现此场景的最佳方法是什么?这对我来说似乎很好,还是我没有抓住问题的关键 我最近在PHP前端做了类似的事情,搜索大约需要30秒 我将实际的搜索逻辑实现为一个控制台应用程序。web服务调用控制台应用程序来执行搜索,并在会话中记录处理搜索的应用程序的进

我正在asp.NET3.5中构建搜索页面。搜索需要一些时间(几秒钟到几分钟)。当前我使用AsyncMethodCaller调用搜索方法。AsyncMethodCaller方法在会话中存储搜索结果。我使用Ajax定时器检查搜索方法是否完成,然后显示结果


实现此场景的最佳方法是什么?

这对我来说似乎很好,还是我没有抓住问题的关键

我最近在PHP前端做了类似的事情,搜索大约需要30秒

我将实际的搜索逻辑实现为一个控制台应用程序。web服务调用控制台应用程序来执行搜索,并在会话中记录处理搜索的应用程序的进程ID

前端的AJAX计时器每秒轮询服务器,检查进程ID是否仍在运行。如果完成,它会查看数据库(应用程序在其中写入结果)并将结果发送回前端


如果禁用了Javascript,则简单的元刷新也会执行相同的操作。

您可以尝试使用。我还没有尝试过,但看起来很有希望。

我会使用ASP.NET Ajax框架中的页面方法。将它们称为异步很容易,完成后您就可以进行回调

看一看。(异步在文章的结尾处解释)