IIS でホストされているシグナル サーバーがあります。ハブには、Windows で 600 のプロセスを開始してからそれらを強制終了する機能があります。
//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 を強制終了できません: Die Anforderung kann nicht verarbeitet werden, da der Prozess Beendet wurde (プロセスが既に終了しているため、要求を続行できません。)
104 個のプロセスしか実行し続けることができないようです。そして、それらの残りは開始直後に終了します。
- コンソール アプリケーションで同じことを試してみたところ、すべてのプロセスを開始して強制終了できました。
- 別のアプリケーションを使用して大量のメモリを消費しようとしましたが、104 個のプロセスを実行し続けることもできました。
- 別のアプリケーションを使用して大量のメモリを消費しようとしましたが、104 個のプロセスを実行し続けることもできました。
- 考えられるすべての IIS 構成も確認しましたが、この問題に関連する設定は見つかりませんでした。
そこで、ASP.NET アプリケーションでより多くのプロセスを開始する方法を誰かが知っているかどうかを尋ねたいと思います。
誰かが私を助けてくれれば、とても感謝しています。ありがとう!