1

Visual Studio2011Betaと4.5Betaを使用しています。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はハングします。エラーなしでコードをデバッグできます。

誰かがこれの修正/回避策を知っていますか?

4

1 に答える 1

4

MVC 4 ベータ版の既知の問題。

つまり、~/Web.config に以下を追加します。

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

await Task.Yield();次に、アクション メソッドの最初の行として追加します。( awaitを忘れないでください!)

于 2012-05-10T03:16:10.817 に答える