- - PR -
C# remotingでのクライアントオブジェクトの登録
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-09 17:23
初歩的な質問ですみません。お知恵をお貸しください。
現在remotingの機能を使いメッセージの送受信を行うアプリケーションを作成するため いろいろ調べているのですがひとつわからないことがあります。 たとえばMSDNライブラリでRemotingConfiguration.RegisterWellKnownClientTypeメソッド のドキュメント http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemruntimeremotingremotingconfigurationclassregisterwellknownclienttypetopic.asp を見ると以下のようなサンプルコードがあります。(抜粋) ChannelServices.RegisterChannel(new TcpChannel()); RemotingConfiguration.RegisterWellKnownClientType( typeof(HelloService), "tcp://localhost:8082/HelloServiceApplication/MyUri" ); HelloService service = new HelloService(); . . . if(service == null) { Console.WriteLine("Could not locate server."); return; } ここで service == null でサーバへの未接続を判定していますが、このコードを実行すると サーバが起動していない場合でも service == null になることがありません。 実際MSDNライブラリを探してみるとnewでオブジェクトを作成する時点ではサーバには接続さ れずプロキシが作成されるだけで実際の接続はメッセージの送信時という記述があります。 にもかかわらず、MSDNのドキュメントには上記のようなサンプルがあちこちにあったりしま す。 そんなわけでサーバの起動の有無をこのサンプルでは判断できないのですが、皆さんはこのよう な場合どんな方法をお使いですか。 | ||||
|
投稿日時: 2005-08-09 18:20
なんか、RegisterActivatedClientType のサンプルそのままで、チェック部分は修正忘れという感じがしますね。 サーバの起動を確認するのであれば、Httpのリクエストを投げてみるなり、メソッドを呼んでみるなりしないと無理だと思います。 ※確実に調べようと思えばメソッドを呼び出すしかない気もしますが… ひょっとしたらチャネルでチェックする方法とかもあるかもしれませんが、良く知りませんです。 --追記 httpのリクエストとか書きましたが、tcpチャネルでしたね… [ メッセージ編集済み 編集者: なちゃ 編集日時 2005-08-09 18:22 ] | ||||
|
投稿日時: 2005-08-10 11:20
なちゃさんありがとうございます。
やはりリクエストを投げるなりメソッドを実行するしは方法はありませんか。 サーバー未起動の場合メソッドを実行してから接続不可で例外が発生するまで 結構時間がかかってしまうので、もっと早くサーバー状態を検知できればと思った のですが。 |
1