通过Remoting / WCF在远程计算机上部署和执行代码

时间:2011-05-20 12:07:44

标签: c# wcf remoting

我们正在构建一个允许加载自定义插件DLL并执行它们的C#应用​​程序。

每个DLL都包含一些任务,我们希望该任务在本地或某个远程服务器上透明地执行。

我已经为此研究了各种解决方案,到目前为止,提出的最佳解决方案是使用WCF。

我想了解,因为我目前只通过WCF的基本教程,如果可以使用WCF动态部署新代码以便远程执行?

我看到它的方式,我有两种不同的场景:

  1. 远程计算机部署了基本“执行”库。
  2. 远程计算机当前没有安装WCF服务。
  3. 使用选项#1,我想我可以通过DLL或其他东西发送一些功能,并远程执行它,因为执行库已经知道如何执行此操作。

    使用选项#2,我需要从头开始基本部署所有内容(不知何故),然后发送命令来运行它。

    这种情况是否可行?你有任何提示来执行这种任务吗?

    另外,如果您有任何好的WCF教程(我目前正在MSDN上阅读)。

    谢谢!

1 个答案:

答案 0 :(得分:3)

要记住的重要一点是,WCF可用于传输数据,但不能用于传输执行逻辑。您可以将添加的结果从一端发送到另一端,但是您不能发送一些仲裁指令(如添加或其他)并让另一端神奇地执行它。

换句话说,如果您在远程端有一个WCF客户端,您可以将它发送给您的DLL文件(作为二进制数据),然后客户端可以使用它动态加载和执行它反思(但是没有提到所引起的所有明显的安全性和兼容性问题)。 另一个可能更容易的选择是发送脚本而不是编译代码,并在服务器端使用一些解释器执行它们。但是无论你使用什么技巧,你都需要在WCF之外做很多工作,因为发送指令不是WCF的目标。