我希望以这样的方式托管动态语言运行时(DLR),使得运行其中任意脚本的用户不能使进程崩溃?
DLR hosting spec描述了如何在单独的ApplicationDomain中托管DLR。这允许拆除并卸载脚本运行时,并通过CAS限制某些操作(例如,我可以限制文件系统访问或禁止使用反射)。
但是,是否也有其他方法,例如:
- 限制脚本使用的最大内存量? - 限制脚本创建的线程数? - 检测死锁脚本?
我认为可以使用为SQL Server开发的非托管.net托管API实现这种细粒度控制。这是正确的方向吗?是否有针对此类通用.net沙盒的开源项目?
以下是我找到的一些潜在有用的参考资料:
但是,是否也有其他方法,例如:
- 限制脚本使用的最大内存量? - 限制脚本创建的线程数? - 检测死锁脚本?
我认为可以使用为SQL Server开发的非托管.net托管API实现这种细粒度控制。这是正确的方向吗?是否有针对此类通用.net沙盒的开源项目?
以下是我找到的一些潜在有用的参考资料: