.Net Remoting呼叫上下文

时间:2012-01-20 10:23:59

标签: .net remoting

我有两个服务在同一个进程中运行,在不同的IP端口上托管相同的类。

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

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

对服务,TcpCannel或某些任意值的引用。什么都行,我很绝望。

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

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上执行的方法时,我需要在RmtObject中知道它是否属于ServerA或ServerB。

如果它让事情变得更容易,我可以使用WellKnownObjectMode.SingleCall。

1 个答案:

答案 0 :(得分:0)

我通过实现自己的SinkProvider解决了这个问题,就像这里最常投票的答案一样:Identifying the client during a .NET remoting invocation