我有一個信號服務器在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個進程的原因。 –