【发布时间】:2010-10-17 10:38:11
【问题描述】:
我正在学习ASP.NET MVC Framework,从this之类的一些文章中,似乎MvcHandler只实现了Execute(),没有实现异步API。实际上,我认为 Controller 也没有异步 API。
那么,ASP.NET MVC 不支持异步编程?如果网页需要 I/O 操作,这可能是可扩展性的一大障碍。
【问题讨论】:
我正在学习ASP.NET MVC Framework,从this之类的一些文章中,似乎MvcHandler只实现了Execute(),没有实现异步API。实际上,我认为 Controller 也没有异步 API。
那么,ASP.NET MVC 不支持异步编程?如果网页需要 I/O 操作,这可能是可扩展性的一大障碍。
【问题讨论】:
经过一番谷歌搜索,我发现了这个关于如何 DIY 异步 ASP.NET MVC 的很棒的博客。实现看起来简单明了。我很奇怪为什么ASP.NET MVC团队一开始就没有这个功能。
http://blog.codeville.net/2008/04/05/improve-scalability-in-aspnet-mvc-using-asynchronous-requests/
【讨论】:
目前,MVC 中没有内置异步支持。它在功能列表中,但无法保证它何时发布(以及以何种形式发布)。
【讨论】:
MVC 2 通过 AsyncController 支持异步页面执行。
【讨论】:
正如 Brad 所提到的,Microsoft 正在开发一种解决方案,作为 MVC 未来的一部分。还有一个实现在:http://code.msdn.microsoft.com/AsyncMvc/Wiki/View.aspx?id=11350
【讨论】:
ASP.NET MVC 2 现在已经合并了来自 beat 版本的 asnyc 控制器。看看吧。
【讨论】: