私は ac# .Net3.5 アプリケーションを開発しています。
アプリケーションは、WinVerifyTrustを使用してファイルの署名をチェックします。問題は、分離されたネットワーク (つまり、インターネット アクセスがないが、マシンにはまだ IP アドレスがある) では、WinVerifyTrust が戻るまでに非常に長い時間 (~20 秒) かかることです。
この状況を特定する方法はありますか?
私は ac# .Net3.5 アプリケーションを開発しています。
アプリケーションは、WinVerifyTrustを使用してファイルの署名をチェックします。問題は、分離されたネットワーク (つまり、インターネット アクセスがないが、マシンにはまだ IP アドレスがある) では、WinVerifyTrust が戻るまでに非常に長い時間 (~20 秒) かかることです。
この状況を特定する方法はありますか?
Windows API
-を使ってみましたか?
using System;
using System.Runtime;
using System.Runtime.InteropServices;
public class InternetCS
{
//Creating the extern function...
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState( out int Description, int ReservedValue );
//Creating a function that uses the API function...
public static bool IsConnectedToInternet( )
{
int Desc ;
return InternetGetConnectedState( out Desc, 0 ) ;
}
}
また、コンピューターが低速のインターネット接続に接続されているかどうかをどのように区別しますか?
とにかく、あなたはそれが利用可能であるかどうか見るためにグーグル(例えば)にpingすることができます。コンピューターが分離されていない場合は、使用可能になります。
C#からpingを実行するには、System.Net.NetworkInformation.Pingを使用するだけです。
編集:プロキシの背後にいることをサポートする必要がある場合は、Googleポート80を介してTcpConnectionを開き、できるかできないかを確認する必要があります。グーグルの80へのポートを開くことができない場合は、WinVerifyTrustにも接続できません。