2012-01-20 46 views
1

我有两个服务在同一个进程中运行,在不同的IP端口上托管相同的类。.Net Remoting调用上下文

根据调用的端口,预期实例化的类将针对不同的数据库工作。

是否有可能在MarshalByRefObjects的类的构造函数中获取一些“所有者”信息?

对服务,TcpCannel或一些任意值的引用。任何事情都会做,我很绝望。

澄清(我希望): 在我的Main()我有

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

和ExecuteService()在我的ServiceBase实现我:

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

谢谢@ user6130。实现我自己的SinkProvider解决了它。抱歉,我无法将评论标记为答案。 – idstam

回答