- PR -

リモート処理におけるクライアントの特定方法

1
投稿者投稿内容
KERNEL
会議室デビュー日: 2002/06/26
投稿数: 2
投稿日時: 2002-06-26 16:34
リモート処理について質問です。
現在、サーバでSystem.MarshalByRefObjectから派生したオブジェクトを公開し、クライアント側でプロキシを通してサーバ側にあるオブジェクトのメソッドを呼び出す処理を行っています。
サーバ側のリモートオブジェクトはサーバ側でアクティブ化されるSingleton型のオブジェクトで、クライアントとサーバはTCPチャネルを介して通信しています。Singleton型なので、サーバ側にインスタンス化されるリモートオブジェクトは一つであり、各クライアントはこの同一のオブジェクトのメソッドを呼び出すことになります。
ここで、クライアントからサーバでアクティブ化されているオブジェクトのメソッドを呼び出した時に、サーバ側でどのクライアントがメソッドを実行しているのかを特定する方法を教えてください。(たとえばメソッドを実行しているクライアントのIPアドレスやコンピュータ名など。)
よろしくお願いします。
はなたれ小僧
常連さん
会議室デビュー日: 2003/07/17
投稿数: 21
投稿日時: 2003-07-25 14:52
私も同じテーマで調査中です。
クライアントからのアクセスが同一クライアント毎にスレッドでセッション管理されていると都合がよいのですが、そうならないとすればクライアントのコンピュータ名、IPアドレス、アクセスユーザ名などを取得してセッションを管理する仕組みを追加する必要があるのでしょうかね?
SingleCallにするとリモートメソッドの実行のたびにリモートオブジェクトが初期化されてしまい、Singleton/SingleCall以外の選択肢があるといいのですが、という袋小路にいます。
打開策について何かヒントになることがありましたらよろしくお願いします。
Hisashi.O
会議室デビュー日: 2003/08/04
投稿数: 7
投稿日時: 2003-08-04 14:56
既に解決済みかもしれませんが。

はなたれ小僧様
同一クライアント毎にスレッドでセッション管理ということですが、
クライアントアクティベートではだめでしょうか?

KERNEL様
クライアント/サーバにカスタムシンクを挿入し、クライアントより
必要な情報をITransportHeadersに格納して送信するという方法があると思います。
1

スキルアップ/キャリアアップ(JOB@IT)