C# 防止appdomain中的进程终止

C# 防止appdomain中的进程终止,c#,process,appdomain,kill-process,C#,Process,Appdomain,Kill Process,有没有办法设置AppDomain的权限,使其内部运行的代码无法杀死启动它的进程 更准确地说,假设我有一个AppDomain AppDomain,我想做如下事情 try { appDomain.ExecuteAssembly("someAssembly.exe"); }catch(SomeForbiddenActionException e){ Console.WriteLine("someAssembly tried to perform some forbidden acti

有没有办法设置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();提出一个例外,因为它是被禁止的。 在安装应用程序域期间,我试图找到一些方法来设置证据和/或权限集,以防止出现这种情况,但没有成功:

没有给我任何关于如何实现我的目标的线索

appDomain.ProcessExit只是在进程已经退出时调用一些代码的一个机会=>这不是一个好选项


欢迎提供任何帮助或线索,谢谢

您可以订阅正在退出的进程,但我不确定这是否有助于防止进程被终止


有帮助,但在没有任何可添加到事件处理程序的情况下不有用。我认为回答了您的问题:不可能。AFAIK
Process.Kill
不可捕获
var myProcess =  Process.GetCurrentProcess();
myProcess.Exited += new EventHandler(myProcess_Exited);

private void myProcess_Exited(object sender, System.EventArgs e)
{
     //not sure if there is a way to prevent the process from exiting here.
}