C# 防止appdomain中的进程终止
有没有办法设置AppDomain的权限,使其内部运行的代码无法杀死启动它的进程 更准确地说,假设我有一个AppDomain 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
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.
}