TcpClient подключается к недоступному сервису

Пока код у меня есть

`tcpClient = new TcpClient();
tcpClient.Connect(ip.IpAddress, Convert.ToInt32(ip.Port));
if (tcpClient.Connected)
{
  Console.WriteLine("Host is up");
  Console.ReadKey();
}
else
{
  UpdateDowntime(ip);
}`

IpAddress и порт, который я тестирую, это сайт DEV, работающий через IIS. Я остановил AppPool для этого сайта. Если я перейду к этому через браузер, я получу

Сервис недоступен

Ошибка 503. Сервис недоступен.

Но если я запускаю код, он подключается и печатает "Host is up"

Пожалуйста, сообщите, что мне не хватает в шаге.

1 ответ

Решение

Добавление этого в случае, если кто-то сталкивается с той же проблемой. Это было мое решение после использования ссылки в моем комментарии выше.

foreach (var ip in ipAddressList)
{
    HttpWebResponse myHttpWebResponse = null;
    try
    {
        var myUri = new Uri(ip.Url);
        // Create a 'HttpWebRequest' object for the specified url. 
        var myHttpWebRequest = (HttpWebRequest)WebRequest.Create(myUri);
        // Set the user agent as if we were a web browser
        myHttpWebRequest.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4";
        myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
        // Release resources of response object.
        myHttpWebResponse.Close();
    }
    catch (WebException ex)
    {
        // If we get here, port is not open, or host is not reachable
        UpdateDowntime(ip, ex.Message);
    }
    finally
    {
        if (myHttpWebResponse != null)
        {
            myHttpWebResponse.Close();
        }
    }
}

Внутри UpdateDowntime() я загружаю результаты обслуживания в базу данных, когда URL-адрес не был доступен, поэтому об этом можно сообщить, и задача планировщика заданий была создана для запуска каждые 5 минут. Он также отправляет электронное письмо, когда служба не работает. Сообщает, какой сервис вышел из строя, когда и что было ошибкой ответа.

Моим конечным результатом будет использование SSRS для составления отчета, когда руководителям необходимо знать метрики по нескольким различным сценариям того, когда что-то пошло не так, как долго, если они не работали в пиковые часы и т. Д. И т. Д., И т. Д.

Надеюсь, что это поможет кому-то еще, если они найдут ту же проблему.

Другие вопросы по тегам