在Silverlight中检查互联网连接

在Silverlight中检查互联网连接

问题描述:

我正在编写一个Silverlight 4应用程序,并希望检查何时打开已安装的浏览器应用程序,是否有有效的Internet连接(然后从我的网站下载一些数据)。做这个的最好方式是什么?我意识到我可以尝试围绕WebRequest进行尝试,但对我来说这看起来有点难以理解。在Silverlight中检查互联网连接

编辑:我通过有效的互联网连接意味着仅仅是连接到互联网

+0

下面回答你的问题吗? – 2010-09-24 17:59:09

你可以只一举两得与Application.CheckAndDownloadUpdateAsync。当您在UpdateAvailable上获得False处理Application.CheckAndDownloadUpdateCompleted时,这意味着两件事之一 - 您的站点无法到达或没有可用的更新。无论哪种情况,你都会知道你需要知道什么。

到底什么是有效的互联网连接?如果您想检查是否有能力从您的网站下载数据,请检查您是否可以从您的网站下载数据。将try/catch块放在可能因为超出程序控制范围的原因而失败的东西上并没有什么特别的含义。这正是我会做的。

客户端是“连接到Internet”并不一定意味着网站提供服务所需的数据。这是唯一有效的测试。

有一个类叫做NetworkInterface,可以这样做。

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

现在这不能保证总是确定是否有互联网连接不是,这取决于代理设置和其他变量。

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

+4

请注意,这并不会告诉你有关“Internet”可用的任何信息。它所做的只是表明系统上有一个非回送网络接口。它可以代表一个局域唯一的令牌环适配器,或者它可以是一个计算机到计算机的串行连接或十几个其他的东西。 – 2010-07-01 15:28:37