2010-07-01 5 views
2

Я пишу приложение Silverlight 4 и хочу проверить при открытии установленного из браузера приложения, есть ли действующее подключение к Интернету (чтобы затем загрузить некоторые данные с моего сайта). Каков наилучший способ сделать это? Я понимаю, что могу попытаться поймать WebRequest, но это кажется мне немного взломанным.Проверьте подключение к Интернету в Silverlight

EDIT: То, что я имел в виду действительным доступом в Интернет просто подключен к Интернету

+0

делает ниже ответ на ваш вопрос? –

ответ

1

Вы можете просто убить двух зайцев одним выстрелом с Application.CheckAndDownloadUpdateAsync. Когда вы получите False на UpdateAvailable при обработке Application.CheckAndDownloadUpdateCompleted, это будет означать либо одну из двух вещей - ваш сайт не может быть достигнут, либо нет доступных обновлений. В любом случае вы узнаете, что вам нужно знать.

3

Что такое действительное подключение к Интернету? Если вы хотите проверить возможность загрузки данных с вашего сайта, проверьте, можете ли вы скачать его с вашего сайта. Там нет ничего очень взломанного в том, что класть блок try/catch вокруг чего-то, что может потерпеть неудачу по причинам, не зависящим от вашей программы. Это именно то, что я сделал бы.

Что клиент «подключен к Интернету» не обязательно означает, что ваш сайт доступен для обслуживания данных, которые вы хотите. Это единственное, что нужно проверить.

3

Существует класс под названием NetworkInterface, который позволит это.

if (!NetworkInterface.GetIsNetworkAvailable()) 
{ 
     // no network connection 
} 

Теперь это не гарантировано, чтобы всегда определить, есть ли подключение к Интернету нет, в зависимости от настроек прокси-сервера и других переменных.

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.aspx

+4

Обратите внимание, что это ничего не говорит о доступности Интернета. Все, что он делает, указывает на то, что в системе есть сетевой интерфейс без обратной петли. Он может представлять собой адаптер Token Ring только для локальной области, или это может быть последовательное соединение от компьютера к компьютеру или еще десяток других вещей. –

Смежные вопросы