2011-11-01 29 views
4

我有一個處理靜態資源(例如png文件)的Kentico CMS網站。我希望這些文件不被ASP.NET處理。我該怎麼做呢?如何防止ASP.NET和Kentico處理靜態文件

我使用Kentico CMS(Web窗體)運行IIS 7.5和ASP.NET 3.5。應用程序池是集成模式

我查看了網絡配置文件中的<location>元素,但似乎實施它並沒有什麼區別。

更新:圖像包含在名爲/ res的文件夾中,該文件夾是webroot文件夾的子項。即不由kentico管理,媒體庫等。通過Visual Studio添加。

編輯:潛在的問題是我的主頁有很多圖像,有時需要很長時間才能加載。有時,靜態圖像可能需要一整分鐘才能加載(觸發我們的警報)。我不是100%確定是什麼原因導致此問題,這是故障排除的一個步驟。

+0

是通過Kentico上傳的圖像(通過CMSDesk添加爲內容還是導入到媒體庫中),還是僅在Kentico運行的目錄中? –

+0

更新了帖子。謝謝。 –

回答

3

集成模式意味着all requests will participate in the ASP.NET pipeline。我相信靜態資源的最終處理程序是來自IIS的靜態文件處理程序,但在提供這些文件之前,您將看到ASP.NET模塊和應用程序事件被觸發(包括身份驗證)。

也許,你應該詳細說明你遇到的這個問題。通常,您可以關閉特定路徑的ASP.NET模塊。
由於您將這些文件放在一個子文件夾中,因此其他解決方法可能是將子文件夾設爲不同的應用程序,並在經典模式下將這些文件提供給其他應用程序池。

+0

謝謝。我意識到,所有的請求都通過集成模式下的asp.net。我對此知之甚少,無法知道如何阻止這些文件被處理。我讀了一些關於在web.config中使用元素的內容,但我不知道如何測試那個工作。我已經編輯了帶有潛在問題的問題。謝謝:) –

+0

@rob_g,可能你的請求可能正在排隊。使用諸如fiddler之類的工具來檢查這一點。以經典模式提供這些文件是否解決了您的問題?如果是的話,你可以嘗試清除所有路徑的模塊(或者你可以把一個單獨的配置文件放在子文件夾中)。會話狀態模塊可以對請求進行排隊,但它不應該進入靜態資源的操作 - 清除所有模塊應該採取這種可能性。 – VinayC

+0

感謝VinayC。我剛剛使用pingdom來分析頁面,當然建議我需要平行化圖像請求。我早就考慮過的東西。我現在要去那個方向。謝謝 –

2

如果文件直接放在文件系統上(並且不在Kentico CMS的媒體庫中使用),Kentico CMS不處理這些文件。無論如何,如果您想要獲得更好的性能,也許應該考慮通過CMS界面添加它們 - 這樣它們將由CMS引擎處理,您可以使用Kentico CMS中提供的緩存選項來提高性能。每次從磁盤加載文件可能並不總是如何檢索它們的最快方式。

相關問題