Как проверить, что веб-сайт, написанный на ASP.Net, еще жив? - PullRequest
1 голос
/ 16 сентября 2009

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

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

Вот пример кода для моей стороны 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;
  }
}

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

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

  • Richard

Ответы [ 4 ]

2 голосов
/ 16 сентября 2009

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

2 голосов
/ 16 сентября 2009

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

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

1 голос
/ 16 сентября 2009

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

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

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

Если страница выдает исключение по какой-либо причине, Response.Write сообщение об исключении, в противном случае Response.Write ("SUCCESS") или подобное.

1 голос
/ 16 сентября 2009

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

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

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

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

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

...