【发布时间】:2014-08-31 01:13:00
【问题描述】:
我有一个为远程卡车编写的应用程序,用于移动服务。在我做任何事情之前,我正在用这个类检查互联网:
using System.Net;
namespace SSS.ServicesConfig.MiscClasses
{
public class VerifyInternetAccess
{
public static bool HasInternet()
{
try
{
using (var client = new WebClient())
using (var stream = client.OpenRead("http://www.google.com"))
{
return true;
}
}
catch
{
return false;
}
}
}
}
在某些情况下,外部蜂窝设备上的指示灯会亮起绿灯,就好像它有互联网一样。我的测试类返回错误,所以它认为它没有互联网。
然后驱动程序可以打开Internet Explorer,关闭Internet Explorer,立即运行我的应用程序,它通过了上面的测试。
用户说 IE 正在“唤醒”互联网以便它可以传输。
我的班级不是在做同样的事情吗?如果没有,我怎样才能像 IE 一样“唤醒”互联网连接?
【问题讨论】:
-
只是一个理论,但可能与 DNS 有关。您未能解析 www.google.com,并且 DNSCache 服务记住了这个结果,因此即使它应该正常工作,它也会一直失败,直到有什么东西给服务带来了刺激。您可以禁用 DNSCache 或仅使用 IP 地址测试您的互联网连接,例如您可以 ping 8.8.8.8。
-
这里是另一个解决方案:social.msdn.microsoft.com/forums/en-US/…
标签: c# winforms .net-4.0 cellular-network