1

Motorola MC9596スキャナー用のソフトウェアを作成するという大きなプロジェクトに取り組んでいますが、FTPサーバーを使用したGPRSモバイル接続を介したデータ送信に行き詰まっています。

この目的のために、私は OpenNETCF を使用しています。

問題は、作成したエントリでダイヤル接続できないことです。つまり、デバイスの電話帳に 2 つのエントリがあることを意味します。

private const string CONNAME = "test2";
private const string PHONENR = "~GPRS!xxx.xxx-xxxxxxxx.eu";
private const string USER = "xx";
private const string PWD = "xx";
private const string DEVICE_TYPE = "modem";
private const string DEVICE_NAME = "Cellular Line";

private void createConnectionEntry()
{
    RasEntry rasEnt = new RasEntry()
    {
        Name = CONNAME,
        CountryCode = 0,
        AreaCode = "",
        PhoneNumber = PHONENR,
        DeviceName = DEVICE_NAME,
        DeviceType = DEVICE_TYPE,
        IPAddress = "0.0.0.0",
        IPAddressDns = "0.0.0.0"
    };

    /*rasEnt.Options |= (int)ConnectionOptions.UseCountryAndAreaCodes;
    rasEnt.Options |= (int)ConnectionOptions.UseLogonCredentials;*/
    rasEnt.Options = 4194304;

    RasDialParams dialParams = new RasDialParams()
    {
        UserName = USER,
        Password = PWD,
    };

    cEntry = Ras.CreateEntry(rasEnt, dialParams);
}

ハードコードされた "rasEnt.Options = 4194304" に注意してください。接続を手動で構成することにより、デバイスによって生成された設定の正確なコピーが作成されます。奇妙なのは、デバッグ モードで 2 つのエントリを比較すると、両方が等しいということです。つまり、すべてのプロパティが等しいということです。唯一の違いは名前です。オブジェクトを比較するために、反射も使用して、これについて確信しています。

私は接続をダイヤルします:

RasError re = cEntry.Dial(false, new RasDialParams(CONNAME, USER, PWD));

Test1 の場合は「成功」、Test2 の場合は「不明」エラーです。

その厄介な問題を手伝ってくれませんか?

4

2 に答える 2

1

今のところ、必要なレジストリエントリを手動で追加することで終了しました-接続を作成する前後のレジストリの違いを確認しました. きれいな解決策ではありませんが、他の解決策は見つかりませんでした。安定して動作しているようです。この方法で作成されたダイヤル接続ができます。生産段階で問題ないかどうかを確認します。

于 2013-02-11T18:34:34.427 に答える