我正在使用4.5 Beta的Visual Studio 2011 Beta。似乎有一个ASP.Net MVC 4的错误,如果该方法返回一个没有“TaskAsync”任务,它挂起请求。asp.net mvc 4异步控制器挂在none TaskAsync方法
public class HomeController : Controller
{
//
// GET: /Home/
public async Task<ActionResult> Test1()
{
string s = await new WebClient().DownloadStringTaskAsync("http://google.com");
return Content("asdf");
}
public async Task<ActionResult> Test2()
{
string MyConString = ConfigurationManager.ConnectionStrings["Master"].ConnectionString;
MySqlConnection connection = new MySqlConnection(MyConString);
await connection.OpenAsync();
connection.Close();
return Content("asdf");
}
}
Test1正常工作。 方法返回后,Test2挂起。我可以通过代码进行调试而不会出错。
任何人都知道此修复/解决方法?
这可能是相关的:http://stackoverflow.com/questions/9977309/async-ctp-mvc4-and-workflows –
当你说它调试没有错误, Test2的Content()行上的断点受到影响吗?如果是这样,那么像相关的SO线程一样添加Yield是否可以提供帮助? –
是的Content()行命中并且该方法实际完成。它在方法返回到MVC引擎后卡住了。 – user896993