2012-02-09 40 views
2

我們有一個由第三方開發的應用程序,我不想回到它們來讓它們爲特定頁面添加緩存控件。僅通過Web.config爲特定位置添加緩存標頭

所有需要禁用高速緩存的頁面都位於一個目錄中。

問題是,IE似乎沒有正確執行Cache-control:nocache,所以我們需要在Pragma中添加:nocache和cache age。

有沒有辦法使用目錄中的configs來做到這一點?它會通過所有的子目錄級聯嗎?可以通過主web.config完成嗎?

爲了清楚起見,我不想通過代碼來實現這一點,它需要通過配置IIS或web.config文件。

我們在IIS 6.0上使用ASP.NET 2.0和4.0。

回答

3

這可以在IIS中使用UI來完成,它實際上是很容易的,或至少它在我的使用情況。

您只需打開IIS管理器,導航到該站點,然後選擇要將標題添加到右鍵單擊 - >屬性的目錄。

點擊「標題」標籤,並添加您需要的標題。

這遞歸地向下子目錄,並添加標頭之前的任何代碼添加。

在IIS 7.0/7.5中,可以在每個目錄中使用web.config的StaticContent部分。

+0

獲得+1.5從我這裏找到它:) – Aristos 2012-02-10 17:29:02

+0

它可以做一些特定的URL,我的應用程序是一個MVC3應用程序。 – Krunal 2013-03-09 04:22:08

+0

我不知道有什麼辦法,但web.config的''部分可能有這種能力?如果我遇到任何問題,我會報告回來 – Martin 2013-03-12 12:52:01

1

你可以做到這一點在Global.asax的

protected void Application_BeginRequest(Object sender, EventArgs e) 
{ 
    HttpApplication app = (HttpApplication)sender; 
    string cTheFile = HttpContext.Current.Request.Path; 

    if (cTheFile.Contains("/ExtraDir/")) 
    { 
     // add your header here 
     app.Response.AppendHeader("Pragma", "no-cache");  
    } 

    //... rest code of... 
} 
+0

感謝您的回覆,但我正在尋找一個爲什麼要通過配置而不是基於代碼來實現這一點。我將更新問題 – Martin 2012-02-09 11:11:30

+0

其他頭文件可以由IIS元數據庫加載,這意味着它可以完成。它也可以通過IIS7.0中的靜態內容元素完成。 – Martin 2012-02-09 12:04:58

+0

您可以將其添加到目錄中,這就是問題所在。它們都在單個目錄中。您可以將標題添加到它看起來像的目錄中的所有內容。 – Martin 2012-02-09 12:28:37