我们正在构建一个允许加载自定义插件DLL并执行它们的C#应用程序。
每个DLL都包含一些任务,我们希望该任务在本地或某个远程服务器上透明地执行。
我已经为此研究了各种解决方案,到目前为止,提出的最佳解决方案是使用WCF。
我想了解,因为我目前只通过WCF的基本教程,如果可以使用WCF动态部署新代码以便远程执行?
我看到它的方式,我有两种不同的场景:
使用选项#1,我想我可以通过DLL或其他东西发送一些功能,并远程执行它,因为执行库已经知道如何执行此操作。
使用选项#2,我需要从头开始基本部署所有内容(不知何故),然后发送命令来运行它。
这种情况是否可行?你有任何提示来执行这种任务吗?
另外,如果您有任何好的WCF教程(我目前正在MSDN上阅读)。
谢谢!
答案 0 :(得分:3)
要记住的重要一点是,WCF可用于传输数据,但不能用于传输执行逻辑。您可以将添加的结果从一端发送到另一端,但是您不能发送一些仲裁指令(如添加或其他)并让另一端神奇地执行它。
换句话说,如果您在远程端有一个WCF客户端,您可以将它发送给您的DLL文件(作为二进制数据),然后客户端可以使用它动态加载和执行它反思(但是没有提到所引起的所有明显的安全性和兼容性问题)。 另一个可能更容易的选择是发送脚本而不是编译代码,并在服务器端使用一些解释器执行它们。但是无论你使用什么技巧,你都需要在WCF之外做很多工作,因为发送指令不是WCF的目标。