Определить, находится ли веб-браузер в автономном режиме в компоненте C # WebBrowser?

StackOverflow https://stackoverflow.com/questions/1500463

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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) запущен на сервере.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top