在远程计算机上运行代码

时间:2015-06-26 11:24:09

标签: c# .net wcf rmi remoting

在Java中,使用RMI API,您可以通过将任意代码发送到远程计算机来执行它来执行。我知道在使用远程处理或WCF的.NET中可以实现类似但不完全相同的东西。

但根据我的经验,既不允许任意代码执行,远程机器仍需要对对象的引用,而不仅仅是接口。这是对的吗?

我通过在共享位置访问DLL来解决这个问题,该位置已更新,远程计算机可以使用它来执行代码。还有更好的方法吗?

编辑: http://www.cs.ucsb.edu/~cappello/lectures/rmi/helloworld.shtml 在链接中,方法调用只返回一个字符串。然而,这可能是任何事情,并且客户没有事先了解该方法的实施。

1 个答案:

答案 0 :(得分:2)

  

既不允许任意代码执行

这是正确的,您必须公开要远程执行的代码。

  

...远程机器仍然需要对对象的引用,而不仅仅是一个接口。这是对的吗?

否则在WCF客户端中,您可以add a reference to the service创建服务使用的类的本地副本。

请注意Remoting is:

  

不建议用于新开发。

但是,您可以通过添加来自客户端和服务器项目的共享dll的引用来避免共享位置dll,然后将相同的dll部署到这两个位置。

add class source file as link来自另一个项目。

运行从字符串

编译的任意代码

您可以在运行时编译和运行任意代码,并将其与一个简单的WFC方法相结合,该方法接受一个字符串,编译并运行它,这将实现您想要的: