连接到服务中使用.NET远程处理的服务

时间:2014-01-17 07:32:33

标签: c# .net remoting

出于不明原因,我需要从服务本身的WITHIN连接到.NET远程服务。

澄清: 有一个连接到服务的客户端应用程序:

IEngine engine = (IEngine)Activator.GetObject(typeof(IEngine), "tcp://169.18.1.100:1966/Engine");

当对服务进行某个调用时,它会加载一个带有插件dll的AppDomain来计算某些内容。但是现在这个dll需要从嵌入的服务中调用函数,并且它不能直接调用它们,因为它存在于自己的AppDomain中。

我可以在AppDomain中调用它吗?

IEngine engine = (IEngine)Activator.GetObject(typeof(IEngine), "tcp://localhost:1966/Engine");

该对象以:

发布
RemotingServices.Marshal(this, engineUri);

它至少适用于单个调用,但是可能需要考虑线程和IEngine的发布或其他问题吗?

我希望它清楚。

1 个答案:

答案 0 :(得分:1)

如果您存储传递给IEngine的{​​{1}}实例,那么您不需要在服务本身内调用RemotingServices.Marshal,因为它将是由客户应用。它可能需要一些重新构建,但它会通过网络堆栈从服务中保存对Activator.GetObject的任何调用:

IEngine