Как проверить, написан ли веб-сайт на ASP.Сеть все еще жива?
-
07-07-2019 - |
Вопрос
Мне нужно написать простое приложение 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 - это таблица с одной строкой.
Если страница выдает исключение по какой-либо причине, ответьте.Напишите сообщение об исключении, в противном случае Ответ.Напишите ("УСПЕХ") или аналогичный.