代码之家  ›  专栏  ›  技术社区  ›  NickAldwin

检测是否在C WebBrowser组件中脱机?

  •  2
  • NickAldwin  · 技术社区  · 16 年前

    我们正在开发一个打包的WebBrowser组件。如果用户联机,我们希望显示一个页面(例如oursite.com/thispage.html),如果用户脱机,我们希望显示另一个页面(例如c:\somewhere\thispage_offline.html)。我可以正确显示这两个页面,但我的问题是检测在线/离线状态。

    我试过 WebBrowser.IsOffline 但是,似乎只中继离线模式状态,而不是计算机是否能够真正连接到互联网。

    有没有一种方法可以从WebBrowser组件中检测到这一点?有什么办法吗?

    谢谢你的帮助!

    2 回复  |  直到 16 年前
        1
  •  6
  •   SLaks    16 年前

    检查Internet连接的最简单方法是ping服务器。

    尝试此代码:

    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 class 将请求发送到网站上的一个简单页面,并查看它是否成功。这是一个更好的选择,因为它还将确保在服务器上运行IIS(或Apache)。

        2
  •  3
  •   David    16 年前

    如果你只是使用 Ping 类来查看站点是否可用?

    推荐文章