2016-05-10 71 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進程的詳細信息。我自己學到了一些新東西:) –

相關問題