Время ожидания операции истекло в System.Net.HttpWebRequest.GetResponse()

Рейтинг: 2Ответов: 1Опубликовано: 08.04.2015

Есть метод, выполняющий 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(). Брандмауэр на машине отключен. Увеличение таймаута запроса и лимита соединений ничего не дало.

В чем может быть причина такого поведения? Заранее спасибо.

Ответы

Ответов пока нет.