不要在 ASP.NET 4.5 Beta 的 Page 类事件上直接使用 async 与 await
发现问题
在我的上一篇文章《async 与 await 在 Web 下的应用》中,我提到了 asp.net 4.5 在 Web.Config 中的一个奇怪配置:
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
在 Stack Overflow 上提问后,终于有人回答我了。
看了别人的回复后,才发现了我上篇文章中的问题。
下面代码中的这种用法是错误的:
protected async void Page_Load(object sender, EventArgs e)
{
WebClient client = new WebClient();
var result1 = await client.DownloadStringTaskAsync("http://www.website.com");
WebClient client2 = new WebClient();
var result2 = await client.DownloadStringTaskAsync(result1);
//do more
}