2012-01-20 12 views
1

同じプロセスを実行して、同じクラスをホストしている2つのサービスが異なるIPポートにある。.Net Remoting Calling Context

インスタンス化されたクラスは、呼び出されたポートに応じて異なるデータベースに対して動作することが期待されます。

MarshalByRefObjectsであるクラスのコンストラクタで「所有者」情報を取得する可能性はありますか?

サービス、TcpCannelまたは任意の値への参照。何かする、私は絶望的です。

明確化(私は願っています):私のメインで ()私は私が持っている

ServicesToRun = new ServiceBase[] { 
new BatchServer("ServerA"), 
new BatchServer("ServerB")}; 

と私のServiceBase実装のExecuteService()内

を持っている:私は作成し、クライアント側で

RemotingConfiguration.RegisterWellKnownServiceType(
    typeof(RmtObject), "RmtObject", 
    WellKnownObjectMode.Singleton); 

(RmtObject)Activator.GetObject(typeof(RmtObject), theURI, WellKnownObjectMode.Singleton); 

私がRmtObject Iで実行したときRmtObjectがServerAまたはServerBに属しているかどうかを知る必要があります。

わかりやすい場合は、代わりにWellKnownObjectMode.SingleCallを使用できます。

+0

質問を明確にすることはできますか?私は本当に問題を理解していない。 – leppie

+1

これを試しましたか? http://stackoverflow.com/questions/527676/identifying-the-client-during-a-net-remoting-invocation – chandmk

+0

Thanks @ user6130。私自身のSinkProviderを実装して解決しました。申し訳ありませんが、私は答えとしてコメントすることはできません。 – idstam

答えて