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

时间:2009-09-30 20:27:02

标签: c# browser webbrowser-control offline

我们正在处理一个包装好的WebBrowser组件。如果用户在线,我们要显示一个页面(例如oursite.com/thispage.html),如果用户离线,我们要显示另一个页面(例如C:\ somewhere \ thispage_offline.html)。我能够正确显示两个页面,但我的问题是检测在线/离线状态。

我试过了 WebBrowser.IsOffline;但似乎只能中继离线模式状态,而不是计算机是否真的能够上网。

有没有办法从WebBrowser组件中检测到这个?有办法吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:6)

检查互联网连接的最简单方法是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)在服务器上运行。

答案 1 :(得分:3)

如果您刚使用Ping课程来查看该网站是否可用,该怎么办?