Определить, если в автономном режиме - в C # компонент WebBrowser? - PullRequest
2 голосов
/ 01 октября 2009

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 01 октября 2009

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

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

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 класс , чтобы отправить запрос на простую страницу на вашем сайте и посмотреть, будет ли он успешным. Это лучший вариант, потому что он также гарантирует, что IIS (или Apache) работает на сервере.

3 голосов
/ 01 октября 2009

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

...