我有一个信号服务器在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应用程序中启动更多的过程。
如果有人能帮助我,我将非常感激。谢谢!
为什么你需要启动600个进程?说实话,这听起来不是一个好主意。 –
@JasonEvans,我目前正在实现一个大型服务器的最新测试工具。该服务器将为每个连接到它的用户创建一个进程。我试图在最新的测试工具中生成200位virtuell用户,只有60位左右的用户可以正常工作。然后我跟踪了服务器的相关信息,怀疑某些进程没有运行。这就是我实现这个小型测试服务器并在其中启动600个进程的原因。 –