【发布时间】:2015-02-07 13:22:42
【问题描述】:
有没有办法设置 AppDomain 的权限,以使内部运行的代码无法杀死启动它的进程?
更准确地说,假设我有一个 AppDomain appDomain,我想做类似的事情
try
{
appDomain.ExecuteAssembly("someAssembly.exe");
}catch(SomeForbiddenActionException e){
Console.WriteLine("someAssembly tried to perform some forbidden action")
}
假设 someAssembly.exe 执行以下代码:
static void Main(){
Process.GetCurrentProcess().Kill();
}
目前,如果我运行上面的代码,整个应用程序将退出,我想不惜一切代价避免这种情况,我想调用 Process.GetCurrentProcess().Kill();引发异常,因为它是被禁止的。 我试图在应用程序域的设置过程中找到一些设置证据和/或权限集的方法来防止这种情况,但没有成功:
http://msdn.microsoft.com/en-us/library/bb763046%28v=vs.110%29.aspx
没有给我任何关于如何实现目标的线索。
appDomain.ProcessExit 只是在进程已经退出时调用一些代码的机会 => 不是一个好的选择
非常欢迎任何帮助或线索,谢谢!
【问题讨论】:
-
我认为this 回答了你的问题:不可能。
-
AFAIK
Process.Kill不可捕获
标签: c# process appdomain kill-process