2012-01-17 27 views
3

我在讀this有人可以向我解釋應用程序池及其工作進程嗎?

我理解應用程序池:

  1. 可以獨立的過程,從而一個工作進程失敗不會影響其他應用程序池中的 其他應用程序。
  2. 從網頁上面

不同的應用程序池隔離應用程序有助於防止一個 客戶訪問,更改或使用從其他客戶的網站機密信息 。

但是,

  1. 如何工作進程會失敗?我只看到了我的asp.net應用程序會拋出一個異常,但從來沒有看到一個失敗,將 停止我的整個工作進程。有人能給我一個真實的生活 的例子嗎?
  2. 以及如何防止其他客戶訪問,更改 來自其他客戶的網站?如果將信息 信息存儲到數據庫中,是不是不相關?或 他們是否指的是別的?

回答

1
  1. 工人PROCESSS會由於存儲器泄漏,並且如果存在通過在進程中運行的web應用程序拋出未處理的/ uncatched異常。工作進程在失敗後自動重啓,但系統中的所有用戶都將受到影響。
  2. 同樣的事情安全,如果不同的所有Web應用程序共享相同的工作進程,攻擊並導致崩潰將導致一切崩潰。
+0

因此,有時如果我的應用程序拋出一個exeception(類似於object的對象爲null)並且被路由到堆棧跟蹤頁面,那麼Worker Process已經失敗並開始重新啓動?當這種失敗發生時,是否意味着所有其他用戶的會話和全局參數(靜態)都將消失? – 2012-01-17 15:40:10

+0

如果拋出未捕獲/未處理的異常,則處理應用程序池的工作進程將重新啓動,這將影響該進程提供服務的所有應用程序。是的,所有用戶的會話變量都將消失,靜態參數將重置爲其初始值。 – 2012-01-17 15:48:27

+0

現在我知道在同一個應用程序池中,對異常的影響非常大lol這可能沒有太多主題(也許我應該打開另一個問題)。但是,並不總是最好的將每個應用程序放在不同的池中?爲什麼我想要分配到同一個池中? – 2012-01-17 16:11:58

相關問題