Время ожидания операции истекло в System.Net.HttpWebRequest.GetResponse()
Есть метод, выполняющий HttpRequest:
string GetStringFromWeb(string url)
{
if (string.IsNullOrWhiteSpace(url))
return null;
string s;
try
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.Method = "GET";
using (HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse())
{
using (StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8))
s = reader.ReadToEnd();
myResponse.Close();
}
}
catch (Exception e)
{
Tools.Logger.Error(e.ToString());
s = string.Empty;
}
return s;
}
Если его вызывать из Desktop-приложения (консольного или wpf), то все нормально работает. Но если вызывать его из windows-службы, то валится ошибка "Время ожидания операции истекло" в System.Net.HttpWebRequest.GetResponse(). Брандмауэр на машине отключен. Увеличение таймаута запроса и лимита соединений ничего не дало.
В чем может быть причина такого поведения? Заранее спасибо.
Источник: Stack Overflow на русском