2009-05-29 47 views
0

我們有非常好的配置的服務器機器我們的局域網上資源分配到IIS進程和標準Windows應用程序

  • 4 GB的RAM
  • 1 TB HDD
  • 四核處理器

我們可以有2種類型的應用程序運行在服務器上

  1. 在IIS監督下運行的ASP.NET Web應用程序
  2. 標準Windows應用程序以管理帳戶運行。

我的問題是資源如何將這些應用程序之間進行分配。我知道Windows應用程序可以利用高資源(100%CPU,100%RAM等),但我不確定asp.net進程對這些資源有多少訪問權限。它是有限的,或像Windows應用程序相同?此外,如果有任何限制,那麼我們如何控制這一點。

我問這個問題的原因是來自我們的web應用程序,我們想要執行一些繁重的操作。什麼是最好的方式來做到這一點。我應該去一個Windows服務,MSMQ,還是可以使用asp.net帳戶?

回答

1

要回答你的第一個問題,在Windows Server 2003或2008中,有一個叫做Windows System Resource Manager的東西,又名WSRM,它可以讓你將系統資源分配給應用程序或進程。這與服務器操作系統的企業版一起提供。只需如何分配資源是一種黑色藝術;你將不得不嘗試一下,在各種條件下進行徹底的測試。

對於第二個問題 - 處理「沉重的操作」的最佳方式 - 我想簡單的答案有它取決於。有許多不同的方法,並且它們適合不同的要求。

MSMQ可以幫助緩衝工作請求以啓用非高峯時段的處理。 WSRM可以實現系統資源的分配和配給。這兩個可以互補,或者你可以將它們視爲替代品。


至於ASP.NET和Windows服務:ASP.NET顯然將成爲基於瀏覽器的請求主要是有用的,但也可能來自其他系統的REST風格的請求(或類似)。 ASP.NET應用程序將在w3wp.exe工作進程下運行,該進程由IIS保存。您可以獲得所有IIS進程管理的好處,例如定期重啓,過時進程的自動重啓,基於請求的激活等。

Windows服務是一種創建在Windows Server上運行的自定義應用程序的方法,是基於請求的。您的場景的一個示例可能是Windows服務按計劃啓動,比如說每晚晚上10點,並且運行在MSMQ中的所有排隊交易。當隊列爲空或凌晨4點,以先到者爲準,Windows服務關閉。 Windows服務不享受任何IIS進程管理的好處。

底線,ASP.NET和Windows服務提供程序或應用程序託管和生命週期管理的不同選擇。


這些都只是一般性的信息。爲了從這個社區獲得更具體和具體的指導,你將不得不提出更具體的要求,而不是「我該如何處理重加工?」

相關問題