Я использую этот код для загрузки веб-страницы в приложении Metro Style:
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
.
EDIT:
Я использовал 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, чтобы узнать, исправляет ли он мою проблему.