문제

작은 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를 받으려면 내 사이트가 올라갑니다 웹 기반 솔루션.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top