2016-05-10 70 views
0

我有一个信号服务器在IIS中托管。 集线器中有一项功能可以在窗口中启动600个进程并杀死它们。可以在ASP.NET应用程序中启动的进程数是否有限制?

//start 600 processes 
     for (int i = 0; i < 600; i++) 
     { 
      try 
      { 
       Process myProcess = Process.Start(startInfo); 
       proclist.Add(myProcess); 
       Task.Delay(10).Wait(); 
      } 
      catch(Exception e) 
      { 
       feedback = "Process " + i + " cannot be started: " + e.Message; 
       break; 
      } 
      feedback = "All processes are running."; 
     } 
     //kill them 
     foreach (var proc in proclist) 
     { 
      try 
      { 
       proc.Kill(); 
       Task.Delay(10).Wait(); 
      } 
      catch (Exception e) 
      { 
       feedback = "Process " + proclist.IndexOf(proc) + " cannot be killed: " + e.Message; 
       break; 
      } 
      feedback = "All Processes are killed."; 
     } 

然而,当我在客户端调用这个函数,我得到一个异常消磨查杀流程:

过程104不能被杀死:模具Anforderung卡恩nicht verarbeitet werden,达DER Prozess beendet wurde(该请求无法继续,因为进程已经终止。)

看来我只能保持104个进程运行。其余的人在开始后立即终止。

  • 我在控制台应用程序中尝试过同样的事情,所有进程都可以启动并终止。
  • 我试图消耗大量的内存使用其他应用程序,我也可以保持104进程运行。
  • 我试图消耗大量的内存使用其他应用程序,我也可以保持104进程运行。
  • 我也检查了所有可能的IIS配置,我找不到与此问题相关的任何设置。

所以我想问问是否有人知道如何在ASP.NET应用程序中启动更多的过程。

如果有人能帮助我,我将非常感激。谢谢!

+2

为什么你需要启动600个进程?说实话,这听起来不是一个好主意。 –

+0

@JasonEvans,我目前正在实现一个大型服务器的最新测试工具。该服务器将为每个连接到它的用户创建一个进程。我试图在最新的测试工具中生成200位virtuell用户,只有60位左右的用户可以正常工作。然后我跟踪了服务器的相关信息,怀疑某些进程没有运行。这就是我实现这个小型测试服务器并在其中启动600个进程的原因。 –

回答

0

我强烈建议您不要在ASP.NET下执行600次(或任意数量的百次)进程。你会真的压缩Aspnet_wp.exe进程中的资源,这可能会伤害IIS框的性能。

您需要重新考虑设计。

如果这是我的话,我会考虑在ASP.NET之外创建一个外部进程,它可以为您做很多工作。例如,也许你可以创建一个等待文件系统文件夹中的文件的Windows服务(甚至只是运行在服务器上的.NET控制台应用程序)(你可以将文件命名为例如start.txt)被创建,您可以在向您的网站发送请求时执行此操作。该服务将为您执行600 exe文件。我不熟悉lasttest,所以我的建议可能不够。但是,我不相信你会用你目前的设计来达到你要找的。这会损害性能,事实上,我并不惊讶已达到运行流程的限制。我不知道有任何文档指出可以在Aspnet_wp.exe中运行多少个exe文件,但这很可能是因为ASP.NET团队从未期望任何人尝试这种方式。

+0

感谢您的信赖!你的建议非常有帮助! “最后测试”我的意思是“Stresstest”。我刚刚和我的厨师谈过这件事,他们会在稍后改进服务器。我们现在尝试了很多可能的技巧,到目前为止,我们的结论是IIS中的每个应用程序池可以启动最多104个进程(至少在Windows 7和Windows Server 2008r2-64bit中)。 –

+0

我很高兴我的回答为你提供了一些价值。还要感谢有关在应用程序池中运行104进程的详细信息。我自己学到了一些新东西:) –

相关问题