2009-09-30 5 views
2

우리는 랩된 WebBrowser 구성 요소를 작업 중입니다. 사용자가 온라인 상태 인 경우 한 페이지 (예 : oursite.com/thispage.html)를 표시하고 오프라인 상태 인 경우 다른 페이지 (예 : C : \ somewhere \ thispage_offline.html)를 표시하려고합니다. 두 페이지를 제대로 표시 할 수는 있지만 온라인/오프라인 상태를 감지하고 있습니다.오프라인 인 경우 C# WebBrowser 구성 요소에서 감지 하시겠습니까?

시도했습니다. WebBrowser.IsOffline; 그러나 그것은 컴퓨터가 실제로 인터넷에 연결할 수 있는지 여부가 아닌 오프라인 모드 상태 만 릴레이하는 것처럼 보입니다.

WebBrowser 구성 요소에서이를 감지하는 방법이 있습니까? 전혀 방법이 있습니까?

도움 주셔서 감사합니다.

답변

6

인터넷 연결을 확인하는 가장 간단한 방법은 서버를 핑 (ping)하는 것입니다.

이 코드를보십시오 :

public static bool IsOnline() { 
    var pinger = new Ping(); 

    try { 
     return pinger.Send("oursite.com").Status == IPStatus.Success; 
    } catch(SocketException) { return false; } catch(PingException) { return false; } 
} 

또는 귀하의 사이트에 간단한 페이지에 요청을 전송하고 성공 여부를 확인하기 위해 WebRequest class를 사용하여 시도 할 수 있습니다. 이는 IIS (또는 Apache)가 서버에서 실행 중인지 확인하기 때문에 더 나은 옵션입니다.

+1

Ping이 우리 서버에서 작동하지 않았습니다. (내 개인 사이트 ... 이상하게 작동했지만) WebRequest가 수행했습니다. 감사! – NickAldwin

3

방금 ​​Ping 클래스를 사용하여 사이트를 사용할 수 있는지 알아 보려면 어떻게해야합니까?

관련 문제