내 사이트가 다운되었거나 작동하지 않거나 오류가 있습니까?
문제
작은 Windows 애플리케이션을 만들고 싶습니다. 매번 내 사이트에 자동으로 가동하고 작동하지 않거나 작동하지 않거나 오류가 발생하지 않거나 오류가 없는지 확인하십시오. "예 : 404, 네트워크 오류, DB에 대한 연결 실패"IT 내 화면에 메시지가 표시됩니다.
.NET 언어를 사용하여 프로그래밍 방식으로 오류가 있음을 어떻게 알 수 있습니까?
해결책
a와 함께하기가 매우 쉽습니다 WebClient
. 다음과 같이 보일 것입니다.
WebClient client = new WebClient();
try
{
string response =
client.DownloadString("http://www.example.com/tester.cgi");
// We at least got the file back from the server
// You could optionally look at the contents of the file
// for additional error indicators
if (response.Contains("ERROR: Something"))
{
// Handle
}
}
catch (WebException ex)
{
// We couldn't get the file.
// ... handle, depending on the ex
//
// For example, by looking at ex.Status:
switch (ex.Status)
{
case WebExceptionStatus.NameResolutionFailure:
// ...
break;
// ...
}
}
당신은 그것을 a에 연결할 수 있습니다 Timer
'에스 Tick
이벤트 또는 정기적으로 확인하는 것.
다른 팁
왜 귀찮게? 제공자와 같은 저렴한 솔루션을 얻을 수 있습니다. 적색 경보
이것에 대한 좋은 점은 다음과 같습니다.
1) 방화벽 외부에서 사이트를 테스트하므로 다양한 문제를 감지 할 수 있습니다.
2) 공정한 제 3 자이므로 SLA에 필요한 경우 가동 시간을 증명할 수 있습니다.
3) 소규모 프리미엄의 경우 문제를 시도하고 진단 할 수 있습니다.
4) 문제가있을 때 페이지 또는 이메일을 보내거나 이메일을 보낼 수 있습니다.
5) 새 서버를 시운전 할 필요가 없습니다.
Geez, 나는 사람들을위한 광고처럼 들리지만, 나는 그들을 위해 일하지 않거나 반동을받을 것을 약속합니다. 저는 서버 서비스에 만족했습니다.
BTW : 가격을 확인했으며 사이트/월당 약 $ 20입니다. 따라서 직접 구축하는 데 걸리는 것보다 1 년 동안 서비스를 1 년 동안 지불 할 수 있습니다.
동일한 기능을 수행하기 위해 처음으로 타사 솔루션을 살펴 보았습니다. 무료이고 상당히 정확한 하나의 특정 서비스는 모니터.
그러나 만약 당신이 당신의 자신을 만들고 싶다면, 나는 하나의 추천을 할 것입니다. GET 요청 대신 헤드 요청을 고려하십시오.
헤드 메소드는 서버가 응답에서 메시지 바디를 반환해서는 안된다는 점을 제외하고는 동일합니다. 헤드 요청에 대한 응답으로 HTTP 헤더에 포함 된 메타 인식은 GET 요청에 응답하여 전송 된 정보와 동일해야합니다. 이 방법은 엔티티 바디 자체를 전송하지 않고 요청에 따라 묵시적 엔터티에 대한 메타 테인 형식을 얻는 데 사용될 수 있습니다. 이 방법은 종종 유효성, 접근성 및 최근 수정을위한 하이퍼 텍스트 링크를 테스트하는 데 사용됩니다. w3.org
여기에 있습니다 Peter Bromberg의 링크 C#에서 헤드 요청을 수행하는 방법을 설명하는 기사.
system.net.webclient 객체를 사용하십시오. httpwebrequest보다 사용하기가 더 쉽습니다. URL의 내용을 문자열로 다운로드하는 "DownloadString"메소드가 있습니다. 서버가 500을 반환하는 경우 해당 메소드가 WebException 오류를 던질 수 있습니다. 다른 오류의 경우 문자열을 구문 분석하고 키워드를 찾을 수 있습니다.
httpwebrequest를 사용하고 WebException을 위해 시도해보십시오. 예외 객체의 오류 코드는 코드를 제공합니다. 404 등. 500 인 경우 메시지를 인쇄 할 수 있습니다.
이렇게하면 데이터베이스, 파일 IO 등과 같은 특수 하위 시스템을 연습하고 HTML이 아닌 일반 텍스트로 결과를 제공하는 특수 페이지를 만듭니다. 이렇게하면 반환 된 데이터를 더 쉽게 구문 분석 할 수 있으며 404 또는 500 HTTP 오류를 줄 수없는 DB 또는 IO 문제와 같은 문제를 포착 할 수 있습니다.
Adventnet의 응용 프로그램 관리자 (http://www.manageengine.com/products/applications_manager/), 5 개의 모니터에 무료이며 우수한 모니터링 기능을 제공합니다.
이메일 보내기 등과 같은 실패의 경우 수행 할 수있는 작업을 구성 할 수 있습니다.
사이트가 다운되면 이메일/SMS를 받으려면 내 사이트가 올라갑니다 웹 기반 솔루션.