我有一个针对 .NET 4 框架的项目,并且我创建了一个更新数据库中数据的方法。该方法本身还使用一个标志 (runAsync) 来确定是否应该异步运行。我收到错误“System.Threading.Tasks.Task 不可等待”,但我在另一个应用程序中使用相同的代码并且工作正常。我做错了什么,或者我错过了什么才能让它发挥作用?
这是代码:
public static async Task<object> UpdateData(SecureData data, string userAgent, bool runAsync)
{
object result;
try
{
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(_configUri);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = runAsync
? await client.PutAsJsonAsync(String.Format("api/securedata/update/{0}", data.Token), data)
: client.PutAsJsonAsync(String.Format("api/securedata/update/{0}", data.Token), data).Result;
result = runAsync
? await response.Content.ReadAsAsync<object>()
: response.Content.ReadAsAsync<object>().Result;
response.EnsureSuccessStatusCode();
}
}
catch (HttpRequestException ex)
{
throw new HttpRequestException(ex.Message, ex.InnerException);
}
return result;
}
你不能使用async/await在 ASP.NET 4.0 上。您必须升级到 4.5。 http://blogs.msdn.com/b/webdev/archive/2012/11/19/all-about-httpruntime-targetframework.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)