.net新进程沙箱,用于不受信任的代码

时间:2011-05-28 12:35:28

标签: c# .net process sandbox

所以我需要在新进程中运行动态编译的不受信任的代码。我发现如何在新的AppDomain(http://msdn.microsoft.com/en-us/library/bb763046.aspx)中执行此操作,但不是新进程。有可能吗?

我需要新进程的原因是因为它更容易捕获标准输出,查看内存和CPU消耗并终止它。

最终目标是编写在线C#编译器。

1 个答案:

答案 0 :(得分:2)

AppDomains是一种隔离系统中.NET代码的方法。进程是用于隔离的操作系统机制。在某种程度上,您将放弃.NET代码的细节,并且必须手动管理进程之间的数据传输。

查看Process课程。听起来你需要将代码编译为.exe,或者在.NET中创建加载代码的主机.exe。后者似乎更好,因为您可以只写一次主机,然后与该主机编写标准通信代码。

您没有提供有关最终目标的大量信息,但.NET的最新版本提供了可能值得快速查看的各种plug-in APIs