我有一个MVC应用程序,它使用WCF服务作为数据库的连接层。 WCF上的某些操作非常耗时。那么,这个问题的最佳解决方案是什么?我应该在我的MVC应用程序和WCF中的Task.Factory.StartNew中使用异步控制器吗?或者我应该在WCF中的MVC和Task.Factory.StartNew中使用简单的控制器和AJAX吗?或者最好在MVC中使用Task.Factory.StartNew?或者也许最好在WCF中使用简单的线程?
EDITED: 例如,我的服务生成报告 - 这需要很长时间。我希望用户能够开始生成报告而不是等到它完成 - 例如显示'生成'。然后,他可以开始生成另一个,等等。生成报告完成后 - 将其返回给用户。
请提供此类型解决方案的最佳实践或向我展示正确的方向,非常感谢。
答案 0 :(得分:2)
Tim Rogers在评论中指出,这种要求可以通过多种方式设计。根据您的用例关注报告我可能会以下列方式进行判断:
当然这只是一个粗略的描述。而点3和4是简单且直接的,点1和2可以以多种方式实现。你可以通过实现自己的任务持久性线程策略(在内存或基于数据库的情况下)来解决这个问题,你可以尝试使用WCF工作流服务等。希望这会有所帮助。