异步控制器 (MVC),长时间运行且“停止”的进程

Mad*_*d0g 4 .net c# asp.net asp.net-mvc-3

我有兴趣运行一个很长的过程,我想在结果开始出现后立即更新 UI,而不是等待它完成。

我该怎么办呢?我读过有关异步控制器的内容,但它们似乎没有为此目的内置任何东西。

当结果传入时,只需将结果保存在应用程序/会话对象中并使用客户端轮询?我可以想到几种可能出错的方法(例如用户关闭页面,并且对象永远保留在应用程序对象中 - 需要自己管理这些对象的过期,用于轮询的额外服务器负载等)。

有什么想法吗?

谢谢

two*_*wer 5

我最近试图解决类似的问题(将长时间运行的服务器操作的实时进度报告回客户端),结果发现SignalR非常适合这种情况。

基本上,它是一个包装长轮询和 Web 套接字的库,使用(透明地)服务器和客户端上可用的任何内容。

到目前为止我只有很好的经验。