G'day fellow coders,
I'm having what I guess is a cache related problem. I am using CMS 5 R2 SP2.
When I update html-code in a .aspx file on my development machine the new html does not show when I surf to the page.
A change in web.config, a rebuild in VS or a iisreset solves my problem but I don't want to have to to this every time I change something in a .aspx-file.
This problem is new to me, haven't seent it before. Have just updgraded from CMS 5 R2 to CMS 5 R2 SP2.
Everything seems fine in web.config, no output cache activated - httpCacheExpiration="00:00:00" (web.config based on my old CMS 5 R2 web.config where I didn't have this problem).
When I check the response from IIS 6 with Fiddler I see it returns a 200 and the old html. Why won't IIS give me the new html?
Someone recognize this? I'm out of ideas, where should I begin to look?
Best regards Stefan
I've experienced this as well, along with some other developers, but we have no idea why it behaves like that. Looked through all possible configurations and couldn't find out what was causing this. If you find a soloutin, please tell me what it was! (even though I don't have this problem anymore)
If I find the solution I sure will let you know Erik.
Here's some more weirdness regarding the problem. I did put this in my .aspx as well: <%=DateTime.Now.ToString()%> and guess what, the time stamp does get updated every time I reload the page! But my changed html in the same file does not. This means that the IIS do parse the page again but only parts of it get updated. How can this be?
Yes, it's really strange. I guess to file get cached in the IIS or somewhere else. Don't really remeber how it was, if i changed an .aspx it was updated, but if I changed an .ascx it wasn't. Well, somtime you have to accept wierd things when working with computers.. :)
If you're running Win 2k3 server pre SP1, this might be your problem: http://support.microsoft.com/kb/832139
If not, I'd check to make sure it's not in fact the client that's caching the files (this have got me some times), these lines will accomplish that in most browsers (EDIT: I saw you've pretty much ruled out client caching already with the TimeStamp):
Response.Expires = -1;
Response.Expires = -1;
Thanks for your suggestions Jørgen, but doesn't the fact that the time stamp get's updated show that the problem is on the server and not on the client?
I'm developing on XP.
It does indeed, I edited my post when I saw you posted about the TimeStamp :)
The codelines will have an effect on IIS as well though, so I'd at least give them a try.
Or, you could rid yourself of the outdated webserver that is IIS 5.1 and instead try out the new IIS express that just came out in beta (compatible with XP and VS2008) http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx
Nope, the Response.Cache-code lines didn't work. Someone else got a suggestion? (not ready to give up IIS 5.1 yet Jørgen)
I wrote I was on IIS 6 in the first post but that is not true, IIS 5.1 is the one.
Still no one who knows how to solve this annoying problem? //Stefan