2013-08-21 162 views
1

我知道這聽起來令人困惑..所以我試圖儘可能簡短。主Web應用程序中的IIS 7 Web應用程序

我有一個在Windows Server 2008 R2上的ASP.NET 4的經典應用程序池的主網絡;在這個網站內有一個包含本網站所有管理功能的子文件夾;主開發人員決定將此子文件夾轉換爲另一個ASP.NET 4經典應用程序池。

所以基本上我有轉換到應用程序和子文件夾也被轉換成一個應用程序的主文件夾。

到目前爲止,我們並沒有任何問題,但是我不相信這個解決方案是最佳的一個。

我想知道你的想法。

+2

_「我不相信這個解決方案是最優的解決方案。」 - 然後告訴你的主要開發者。解釋您對當前設置有什麼反駁,以及您希望如何配置它。 – CodeCaster

+0

這些網站或網絡應用程序?含義是否有一個bin文件夾?他們在視覺工作室中分離解決方案嗎? – nerdybeardo

回答

1

有很多理由應用到各自自己的應用程序池。當你有一個單獨的應用程序池時,一個新的W3WP流程即將啓動,這意味着在某些情況下它可以提供更好的性能。新進程也會自行分配內存,因此,例如覆蓋緩存條目不會干擾主站點上的緩存條目(這也可能很糟糕)。最後,也是最重要的一點,如果管理員的應用程序池崩潰,它不會影響客戶的主要應用程序池。在很多情況下,應用程序管理部分是最有可能失敗的,因爲它們包含非常多的功能(但這不適用於所有情況)。

以上所有的那些好東西也會產生負面影響。例如,您可能希望強制緩存項從管理應用程序到站點的前端部分到期,現在這會變得更加困難。此外,這些應用程序應該在Visual Studio中作爲兩個獨立的應用程序進行拆分,否則部署將變得古怪(兩者都必須使用同一個bin文件夾中的項目)。如果它是一個子目錄(就像你剛纔提到的那樣),那麼你需要關掉web.config繼承,否則你會遇到各種各樣的問題。看看如何做到這一點

Avoid web.config inheritance in child web application using inheritInChildApplications

我個人認爲在某些情況下,把應用池的管理部分,可以有利依賴於應用本身,你將不得不對這個問題看看你自己的應用程序並做出決定。

1

我不會在親身體驗它之後推薦這種方法。

不久前,我開發了將需要添加新的HTTP模塊和相應的web.config條目的大型Web應用程序的一些新功能。在現場發佈後不久,我們收到一個電話,說明我們不保留的應用程序,但我不知道該應用程序是否已損壞。

的原因是我的web.config設置需要這裏面的子應用程序沒有新的HttpModule,因此墜毀,故障排除和減輕這個問題花了時間和精力。

下一次我想升級我們從.NET 3.5應用到.NET 4,我們不得不以確認它們的應用程序將是確定後,我們提升我們的應用程序,而這又需要花費時間和精力。

長話短說,它需要幾分鐘,如果不秒,創建一個新的應用程序池和安裝一個應用程序,它需要過多的時間和精力來協調這些變化的一個架構,根本是沒有必要或有益的。