5

ホスト アプリケーションで作成されたオブジェクトがあり、リモーティングを使用してリモートでアクセスできます。接続をテストして、オブジェクトがまだ「生きている」ことを確認する方法はありますか? おそらく、リモート接続が切断された場合に発生するイベント、またはリモート接続の状態を教えてくれるプロパティです。このような利用可能なものはありますか?

4

2 に答える 2

9

私は通常、別のメソッドをリモーティング サーバーの MarshallByRef クラスに追加します (通常、次のように Ping() と名付けます)。

 public void Ping() {} 

それは何もせず、何も返しません..次に、接続を「テスト」するために、このメソッドを呼び出します... System.Net.Sockets.Exception がスローされた場合、接続が失われました....

于 2008-11-13T17:18:31.867 に答える
5

接続を確認すると、どのようなメリットがありますか? ping を実行しても、次の瞬間にリモート呼び出しを行ったときに接続がまだ有効であるとは限りません。

リモーティングコールを試してキャッチするだけでわかります。

このタイプのチェックは無意味です (ネット接続、ファイル ロックなど)。あなたがチェックしたものの状態は、チェックの直後に変化する可能性があるためです。トレイを作成し、失敗した場合はクリーンアップ/再試行します。

于 2008-11-13T18:34:18.267 に答える