このコードを使用して、Metro Style アプリで Web ページをダウンロードしています。
public static async Task<string> DownloadPageAsync(string url)
{
HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
handler.AllowAutoRedirect = true;
HttpClient client = new HttpClient(handler);
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
string responseBody = response.Content.ReadAsString();
return responseBody;
}
問題は、行client.GetAsync(url)
が実行されると、次のような例外がスローされることです。
An error occurred while sending the request.
タイプから: HttpRequestException
。
編集:
InnerException を使用して詳細情報を取得しました。スローされる最初の例外はSocketException
、次のメッセージです。
An attempt was made to access a socket in a way forbidden by its access permissions
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
編集 2: Microsoft からサンプルをダウンロードして実行したところ、同じエラーが発生しました: http://code.msdn.microsoft.com/windowsapps/HttpClient-Upload-Sample-f1abcc4e
編集 3: これを別のマシンで実行したところ、問題なく動作しました。したがって、コードに問題はないと思います。ソリューションをコピーしましたが、ソリューションにも問題がないことを意味します。問題が解決するかどうかを確認するために、Windows Developer Preview を再インストールしようとしています。