asp.net mvc 4异步控制器挂在无TaskAsync方法上

我正在使用带有4.5 Beta的Visual Studio 2011 Beta。 ASP.Net MVC 4似乎存在一个错误,如果该方法返回无“TaskAsync”任务,它会挂起请求。

public class HomeController : Controller { // // GET: /Home/ public async Task Test1() { string s = await new WebClient().DownloadStringTaskAsync("http://google.com"); return Content("asdf"); } public async Task Test2() { string MyConString = ConfigurationManager.ConnectionStrings["Master"].ConnectionString; MySqlConnection connection = new MySqlConnection(MyConString); await connection.OpenAsync(); connection.Close(); return Content("asdf"); } } 

Test1运行正常。 一旦方法返回,Test2就会挂起。 我能够通过代码调试没有错误。

有人知道修复/解决方法吗?

MVC 4 Beta的已知问题。

简而言之,将以下内容添加到〜/ Web.config:

     

然后添加await Task.Yield(); 作为动作方法的第一行。 (别忘了等待 !)