Quel est le problème avec cette Tâche asynchrone de la méthode?

C'est juste une simple async tâche, mais j'ai toujours eu d'étranges erreurs du compilateur. Ce code à partir d'une API Web service dans un ASP.NET 4 projet de, créé avec VS2010.

Même ContinueWith (non générique) renvoie la Tâche de manière implicite, mais cette erreur existe toujours.

Code:

public class TestController : ApiController
{
       public Task<HttpResponseMessage> Test()
       {
            string url = "http://www.stackoverflow.com";
            var client = new HttpClient();

            return client.GetAsync(url).ContinueWith<HttpResponseMessage>((request) =>
            {
                //Error 361 'System.Threading.Tasks.Task' does not contain a definition
                //for 'Result' and no extension method 'Result' accepting a first argument
                //of type 'System.Threading.Tasks.Task' could be found
                //(are you missing a using directive or an assembly reference?)
                var response = request.Result;
                response.EnsureSuccessStatusCode();

                //Error 364 Cannot implicitly convert type 'System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>' to 'System.Net.Http.HttpResponseMessage'
                return response.Content.ReadAsStringAsync().ContinueWith<HttpResponseMessage>((read) =>
                {
                    return new HttpResponseMessage();
                });
            });
        }
}

OriginalL'auteur Tien Do | 2012-03-21