2011-03-04 90 views
1

在上個月的某個時間點,我一直在處理的兩個Web應用程序項目已經停止顯示aspx和ascx文件的更新,直到重新啓動IIS或網站他們屬於重置。緩存問題 - ASPX和ASCX文件保存時不更新

這似乎是非常隨機的,我找不到任何可能導致此更改的web.config部分中的任何原因。

尋找這個問題的來源有哪些好的地方? web.config中的

當前緩存部分:

卸下outputCacheProfile並重新啓動IIS沒有什麼區別。

<caching> 
    <outputCacheSettings> 
     <outputCacheProfiles> 
      <add name="ClientResourceCache" location="None" enabled="true" duration="3600" varyByParam="*" varyByContentEncoding="gzip;deflate"/> 
     </outputCacheProfiles> 
    </outputCacheSettings> 
</caching> 

Commening出staticConent並重新啓動也沒有什麼區別

<staticContent> 
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00"> 
    </clientCache> 
</staticContent> 
<caching> 
    <profiles> 
     <add extension=".gif" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" /> 
     <add extension=".png" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" /> 
     <add extension=".js" policy="DontCache" kernelCachePolicy="DontCache" duration="00:01:00" location="Any" /> 
     <add extension=".css" policy="DontCache" kernelCachePolicy="DontCache" duration="00:01:00" location="Any" /> 
     <add extension=".jpg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" /> 
     <add extension=".jpeg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" /> 
    </profiles> 
    </caching> 

我們也嘗試添加的.ascx和擴展的.aspx與CacheUntilChange這沒有什麼區別。其他具有相同設置的網站沒有問題。

編輯:最初這個狀態,也沒有更新時,項目建成,我沒有親自能夠確認這個問題,但被另一名開發者告知正在發生。

回答

4

部署時是否刪除發佈位置中的所有數據,然後部署新文件或僅複製和覆蓋?我不認爲這是代碼或配置問題。

檢查您的bin目錄並查找一些擴展名爲.cache的不合適文件。我過去遇到過這種情況,現在我總是確保在執行更新時進行完全刪除和部署,以確保沒有舊文件留下。

如果您在Visual Studio中使用「發佈」功能,請確保設置'發佈之前刪除所有現有文件'選項。

+0

它不是在部署時的問題,只是在開發時的煩惱。項目文件使用和IIS站點進行調試,並且在我們更改aspx和ascx文件時,新版本不會被提供。 – sclarson 2011-03-04 17:08:47

+0

@sparks那麼你怎麼調試它?在VS中運行它還是你有所有的文件,你有IIS映射到和調試? – Kelsey 2011-03-04 17:55:50

+0

網站正在IIS中運行,指向與Visual Studio使用相同的文件。因此,調試是將visual studio 2010用作使用本地IIS(不是cassini)的Web應用程序項目。 – sclarson 2011-03-04 20:01:36

1

Response.Cache.SetNoStore();

Response.Cache.SetCacheability(HttpCacheability.NoCache);

Response.Expires = -1;

添加這是你的應用程序開始的global.asax.cs請求事件文件

+0

添加到Application_BeginRequest。仍然必須重新構建才能看到對aspx或ascx文件的任何更改。 – sclarson 2011-03-04 17:15:54