3

ラップされた WebBrowser コンポーネントに取り組んでいます。ユーザーがオンラインの場合は 1 つのページ (例: oursite.com/thispage.html) を表示し、ユーザーがオフラインの場合は別のページ (例: C:\somewhere\thispage_offline.html) を表示します。両方のページを正しく表示できますが、問題はオンライン/オフライン ステータスの検出です。

WebBrowser.IsOfflineを試し ました。ただし、コンピューターが実際にインターネットに接続できるかどうかではなく、オフライン モードのステータスのみを中継しているようです。

WebBrowser コンポーネントからこれを検出する方法はありますか? まったく方法はありますか?

ご助力いただきありがとうございます!

4

2 に答える 2

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または、クラスを使用してサイトの簡単なページにリクエストを送信し、成功するかどうかを確認することもできます。これは、IIS(またはApache)がサーバー上で実行されていることも確認するため、より適切なオプションです。

于 2009-09-30T20:34:58.913 に答える
3

Pingクラスを使用して、サイトが利用可能かどうかを確認した場合はどうなりますか?

于 2009-09-30T20:29:43.043 に答える