2010-09-01 43 views
6

我一直在ASP.NET開發服務器上工作(在一個MVC項目上,我發現它是如何服務於變化我不一致例如,我在開發環境中對C#/ HTML/CSS/JS進行了更改並運行該頁面,並且更改顯示在屏幕上,但是如果我再次編輯HTML並再次運行該頁面,新的更改不會出現,即使ctrl + F5也不會這樣做,我必須停止web服務器並再次運行應用程序以更新更新。是否有其他人經歷過這種情況?是否有辦法對此進行排序問題出在哪裏?ASP.NET開發服務器不更新標記/代碼

如果我在IIS中工作,我改變了一些東西,一個ctrl + F5將會隨着我所做的改變而更新頁面,我希望dev服務器可靠。任何人有任何建議?

+0

我有完全相同的問題,使用Visual Studio 2008與.NET傳統2.0的WebForms基礎的網站。很高興我再次問到之前發現了這個問題。 – NinjaBomb 2011-03-04 18:19:30

+0

2我們有同樣的問題,沒有答案!對我來說最新的解決方案是在開始動作時殺死dev服務器進程,然後重新啓動應用程序。 – DaveDev 2011-03-04 21:20:48

+0

這就是我一直在做的事情。它雖然讓我減慢了很多,並且讓我瘋狂,因爲上週它正在工作。據我所知,在當時和現在之間,我的配置沒有任何變化。我開始懷疑Windows Update與它有關,但這似乎有點牽強。 – NinjaBomb 2011-03-04 21:43:24

回答

1

嘗試清除緩存..在每次請求

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); 

如果還是不行。試試這一串代碼中找到了答案,在這個問題上PAG加載事件

Response.AppendHeader("Pragma", "no-cache"); 
Response.AppendHeader("Cache-Control", "no-cache"); 

Response.CacheControl = "no-cache"; 
Response.Expires = -1; 

response.ExpiresAbsolute = new DateTime(1900, 1, 1); 
response.Cache.SetCacheability(HttpCacheability.NoCache); 
+0

這樣做和頁面的shift + f5刷新有什麼區別?我檢查了我要求的頁面的標題,並且他們似乎每次都完全刷新。另外,爲了將這些添加到您正在處理的每個頁面中,並記住在推向產品之前將其取出,似乎很麻煩。 – NinjaBomb 2011-03-05 19:22:45

+1

不是每個頁面上都沒有。只需在global.asax.cs文件下的一個名爲Application_BeginRequest事件的地方。 – 2011-03-05 21:50:15

+0

無論何時刷新頁面,網頁都會緩存到您的機器。並加載頁面更快,而不是從服務器它首先看緩存,如果發現從那裏加載。所以這樣的事情發生。但在上面的代碼中,當第一次加載頁面時,就像上面的代碼一樣,首先它不會創建任何當前請求的緩存,但是如果以任何方式創建,那麼其過期日期將被設置爲1/1/1900,這已經是已經所以創建的緩存將在下一次請求後立即過期,並且會再次創建一個與過期日期相同的新過期..等等 – 2011-03-05 21:54:35