문제

웹 사이트가 아직 살아 있고 해당 웹 사이트가 데이터베이스에서 읽을 수 있는지 테스트 할 수있는 간단한 Winforms 앱을 작성해야합니다.

전체를 사용하고 있습니다. 데이터베이스에 대한 자체 연결성을 테스트 할 수 있음을 나타냅니다.

다음은 내 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을 호출하고 응답을 검사하도록하십시오. 예상 마크 업에 대한 출력 버퍼의 Status 또는 텍스트를 검사하십시오. 또한 httprequest에서 시간 초과를 만들어야합니다. 시간 초과 내에 페이지가로드되지 않으면 웹 예외가 발생하고 사이트가 실패한다는 것을 알게됩니다.

또한 예산이있는 경우 Gomez.com과 같은 외부 모니터링 서비스가 있으며이를 자동화하고 사이트 가용성에 대한보고를 제공 할 수 있습니다.

다른 팁

iamalive라는 프로젝트 내부에서 웹 서비스를 만들고 단일 숯을 반환 할 수 있습니다.

Winforms 영역에서 상기 웹 서비스를 소비하고 작동하면 사이트가 살아 있습니다.

Papuccino의 대답의 본질에서 : 실제로 웹 양식 페이지의 C# 코드-비인에 포함 된 웹 서비스를 만들 수 있습니다. [WebMethod] 기인하다. 이들은 서버뿐만 아니라 웹 응용 프로그램 내에 있습니다.

WebForm 페이지가 데이터베이스 연결을 열고 간단하거나 낮은 영향을 받도록하십시오 (예 :

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

SystemTable은 단일 로우 테이블입니다.

어떤 이유로 든 페이지에 예외가 발생하면 응답. 예외 메시지를 작성하십시오.

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