如果我的asp.net应用程序生成一个进程,该进程是否在运行asp.net应用程序的同一应用程序域内运行?

时间:2011-03-09 10:24:36

标签: c# asp.net iis

根据我的理解:

  1. IIS为服务器上的整个asp.net应用程序调用单个工作进程。
  2. 工作进程包含一组应用程序域。
  3. 工作进程中的每个应用程序域都对应一个asp.net应用程序。
  4. 如果我的asp.net应用程序为每个请求生成一个进程,该进程是否在运行asp.net应用程序的同一应用程序域内运行?

        Process p = new Process();
    
        p.EnableRaisingEvents = true;
        p.Exited += new EventHandler(p_Exited);
    
        p.StartInfo.Arguments = "-fmt=pdflatex -interaction=nonstopmode " + inputpath;
        p.StartInfo.WorkingDirectory = dir;
    
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.FileName = "pdftex.exe";
    
        p.StartInfo.LoadUserProfile = true;
    
        p.Start();
        p.WaitForExit();
    

2 个答案:

答案 0 :(得分:2)

简单的答案是否定的。当您启动新流程时,会创建一个新的流程空间,它独立于您的应用域。生成的进程可能是也可能不是托管代码,并作为独立进程运行。如果定义了适当的设置,它可以继承其创建者的安全上下文。

答案 1 :(得分:1)

没有。 AppDomain不能超过其内部进程的边界 此外,AppDomains是.NET世界的概念。如果pdftex.exe是.NET应用程序,则它具有自己的AppDomain。如果它不是.NET应用程序,则它根本没有AppDomain。