Обнаружить, если в автономном режиме - в компоненте С# WebBrowser?

Мы работаем над обернутым компонентом WebBrowser. Мы хотели бы отображать одну страницу (например, oursite.com/thispage.html), если пользователь онлайн, и другую страницу (например, C:\somewhere\thispage_offline.html), если пользователь не в сети. Я могу правильно отображать обе страницы, но моя проблема заключается в определении статуса онлайн/офлайн.

Я попробовал WebBrowser.IsOffline; однако кажется, что он передает только статус автономного режима, а не то, действительно ли компьютер может подключиться к Интернету.

Есть ли способ обнаружить это из компонента WebBrowser? Есть ли способ вообще?

Спасибо за вашу помощь!


person NickAldwin    schedule 30.09.2009    source источник


Ответы (2)


Самый простой способ проверить подключение к Интернету — пропинговать ваш сервер.

Попробуйте этот код:

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) работает на сервере.

person SLaks    schedule 30.09.2009
comment
Ping не работал для нашего сервера (хотя он работал для моего личного сайта... странно), но WebRequest работал. Спасибо! - person NickAldwin; 09.10.2009

Что, если вы только что использовали класс Ping чтобы узнать, доступен ли сайт?

person David    schedule 30.09.2009