簡體   English   中英

asp.net mvc 4異步控制器掛在無TaskAsync方法上

[英]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就會掛起。 我能夠通過代碼調試沒有錯誤。

有人知道修復/解決方法嗎?

MVC 4 Beta的已知問題。

簡而言之,將以下內容添加到〜/ Web.config:

  <appSettings> 
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> 
  </appSettings> 

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM