Как проверить, написан ли веб-сайт на ASP.Сеть все еще жива?

StackOverflow https://stackoverflow.com/questions/1430481

Вопрос

Мне нужно написать простое приложение WinForms, которое можно запустить, чтобы проверить, работает ли веб-сайт и способен ли этот веб-сайт считывать данные из базы данных.

Я использую весь "(HttpWebResponse)myHttpWebRequest.GetResponse()" в c #, чтобы проверить, работает ли сайт, но я не знаю, как заставить тестовую страницу на моем веб-сайте написать что-то в "Response", чтобы указать, что он смог протестировать свое собственное подключение к базе данных.

Вот пример кода для моей части Winforms (вырванный из MSDN):

private void CheckUrl()
{
  try
  {
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.google.com");

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    myHttpWebResponse.Close();

    label1.Text = myHttpWebRequest.Address.AbsoluteUri;
  }
  catch (WebException e)
  {
    label1.Text = "This program is expected to throw WebException on successful run." +
                                    "\n\nException Message :" + e.Message;

    if (e.Status == WebExceptionStatus.ProtocolError)
    {
      label1.Text = String.Format("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
      label2.Text =String.Format("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
    }
  }
  catch (Exception e)
  {
    label1.Text = e.Message;
  }
}

Я надеялся на некоторую помощь со стороны веб-формы, чтобы вернуться к приведенному выше коду.

Спасибо за любую помощь, которую вы, ребята, можете оказать.

  • Ричард
Это было полезно?

Решение

Что происходит, когда ваш сайт выходит из строя?Возвращает ли он код состояния 500 или тайм-аут?

Другой способ взглянуть на это:всегда ли он делает что-то ожидаемое, если добивается успеха?

Вы можете вызвать URL-адрес в своем веб-приложении, который, как вы знаете, либо вернет код ответа 200, либо будет содержать некоторую ожидаемую HTML-разметку в ответе, если все работает нормально.

Попросите вашу winform вызвать этот URL-адрес и проверить Response.status или текст в выходном буфере на предмет ожидаемой разметки.Вы также должны создать тайм-аут в вашем httprequest.Если страница не загружается в течение тайм-аута, вы получите веб-исключение и будете знать, что сайт выходит из строя.

Кроме того, если у вас есть бюджет, существуют службы внешнего мониторинга, такие как gomez.com, которые могут автоматизировать это и предоставлять отчеты о доступности сайта.

Другие советы

Вы можете создать веб-сервис внутри проекта под названием IAMALIVE и заставить его возвращать один символ.

В вашей области WinForms используйте указанный веб-сервис, и если это сработает, ваш сайт заработает.

В сути ответа Папуччино:на самом деле вы можете создавать веб-сервисы, встроенные в код C # ваших страниц WebForms, пометив их [WebMethod] атрибут.Они будут находиться в веб-приложении, а не только на сервере.

попросите вашу страницу веб-формы открыть подключение к базе данных и выполнить что-нибудь простое / малозатратное, например

select SystemTableId from dbo.[SystemTable] where SystemTableId = 1

где SystemTable - это таблица с одной строкой.

Если страница выдает исключение по какой-либо причине, ответьте.Напишите сообщение об исключении, в противном случае Ответ.Напишите ("УСПЕХ") или аналогичный.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top