[英]asp.net mvc 4 async controller hanging on none TaskAsync methods
我正在使用帶有4.5 Beta的Visual Studio 2011 Beta。 ASP.Net MVC 4似乎存在一個錯誤,如果該方法返回無“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就會掛起。 我能夠通過代碼調試沒有錯誤。
有人知道修復/解決方法嗎?
簡而言之,將以下內容添加到〜/ Web.config:
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
然后添加await Task.Yield();
作為動作方法的第一行。 (別忘了等待 !)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.