在C#中编译和执行外部代码

时间:2012-07-26 11:54:18

标签: c# windows linux multithreading sandbox

我正在用C#编写一个应用程序,它将编译和执行用C,C ++或Java编写的外部代码。在这方面,我有几个问题要问,以下是我迄今为止所做的研究:

  1. 将有一台服务器将托管将接收用户提交的代码请求的应用程序。这些请求将在特定套接字上发送。
  2. 将有一个接收器线程将所有此类请求排入队列。
  3. 将有一个消费者线程将从队列中出队并编译和执行程序(提交的代码)。在编译和执行时,将从命令行使用适当的编译器和加载器,它将作为C#App中的进程执行。
  4. 截至目前,可以假设安全问题,例如沙盒,不使服务器公开访问等等,将在以后考虑。我主要关注的是这种执行逻辑。
  5. 我有以下问题要问:

    1. 有没有更好的方法可以做到这一点/我做错了什么?

1 个答案:

答案 0 :(得分:3)

  1. 方法在纸面上看起来不错,但主要取决于实施。
  2. 尽可能多地使用机器的功能。操作系统将处理它们。
  3. 只要你做得不透气就没关系:恶意/畸形/明显错误的代码提交:Java不能造成那么大的破坏,但C / C ++有点儿危险。