我正在编写一个Silverlight 4应用程序,并且想要检查何时打开已安装的浏览器应用程序,是否存在有效的Internet连接(然后从我的网站下载一些数据)。做这个的最好方式是什么?我意识到我可以尝试一下WebRequest,但这对我来说似乎有点笨拙。
编辑:我认为有效的互联网连接只是连接到互联网
答案 0 :(得分:3)
有效的互联网连接究竟是什么?如果您想检查是否有从网站下载数据的功能,请检查您是否可以从您的网站下载。将try / catch块放在可能由于程序无法控制的原因而失败的事情上,没有什么非常的hacky。这正是我要做的。
客户端“连接到Internet”并不一定意味着您的网站可用于提供您想要的数据。这是唯一有效的测试方法。
答案 1 :(得分:3)
有一个名为NetworkInterface
的类允许这样做。
if (!NetworkInterface.GetIsNetworkAvailable())
{
// no network connection
}
现在无法保证始终确定是否存在互联网连接,具体取决于代理设置和其他变量。
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.aspx
答案 2 :(得分:1)
你可以用Application.CheckAndDownloadUpdateAsync一石二鸟。当您在处理Application.CheckAndDownloadUpdateCompleted时False
上UpdateAvailable
时,这将意味着两件事之一 - 您的网站无法访问或者没有可用的更新。在任何一种情况下,你都会知道你需要知道什么。