By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,743 Members | 1,058 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,743 IT Pros & Developers. It's quick & easy.

IIS caching output of pages

P: n/a
Hi,

Our development web server (Win 2003 Server) seems to be caching the
output of various files (CSS and .aspx files) if they have no query
string. The moment you put a question mark in the URL, it's fine.

The problem is that if you modify a file, it still shows you the old
file unless you restart the website or IIS itself. It's definitely not
the browser that's caching the files - IIS is actually serving the wrong
file.

Is there some way to disable this? Why doesn't IIS realise when the file
on it's local filesystem has been modified and reload it?

I had a similar problem once before where my workstation had it's clock
a few minutes into the future, but this time it seems to be a different
problem as now all our machines are synchronised and are set to exactly
the same time.

I'd be greatful if someone can tell me how to solve this very annoying
problem.

Thanks,

Nick...
Nov 18 '05 #1
Share this Question
Share on Google+
8 Replies


P: n/a
Nick Gilbert <ne**@nickgilbert.com> wrote in news:eCip6Vu9DHA.2392
@TK2MSFTNGP11.phx.gbl:
Our development web server (Win 2003 Server) seems to be caching the
output of various files (CSS and .aspx files) if they have no query
string. The moment you put a question mark in the URL, it's fine.


Have you proven its your webserver and not the browsers, or proxies?
--
Chad Z. Hower (a.k.a. Kudzu) - http://www.hower.org/Kudzu/
"Programming is an art form that fights back"
Nov 18 '05 #2

P: n/a
Hi Nick,
Thanks for posting in the community!
From your description, you found that the files on your IIS Serve such as
(css or aspx files) are always cached and won't be the latest version if it
is modified and requested by client unless appending querystring after the
request url, yes?
If there is anything I misunderstood, please feel free to let me know.

Based on my experience, the such static files and resources such as images,
css files , js files ...etc are all by default cached on the client in the
temporary foler rather than on the serverside. For example, if a user visit
a certain page and the page contains some images and refernce some certain
css or js files. Then the browser will download these resources and cached
in the local disk and next time the page is refreshed (request again) these
resoures files won't be downloaded again from serverside but retrieved from
local cache disk.
So as for your situation, I think the problem you met is likely caused by
the client's cache. And as you've mentioned that this can be avoided( force
the browser to download the file from serversdie everytime the page is
requested) if you append a querystring(need to be different everytime)
after the page's url. So if you'd like the page's refernced resources files
to be downloaded everytime from serverside(the latest version), I think you
can append a tempstamp as querystring after the certain resource file's
url. For example,
if we use a css file as below:
src="common.css"
then now, we replace it as this:
src="common.css?version=<% timestamp %>"

Thus, everytime the page is requested, the css file will be retireved from
serverside (its latest version). How do you think of this?

In addition ,here are some tech articles on browser's cache:
#HOWTO: Prevent Caching in Internet Explorer
http://support.microsoft.com/?id=234067

#How to Use Pragma: No-cache with IIS and IE
http://support.microsoft.com/?id=165150

Hope they're also helpful.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx

Nov 18 '05 #3

P: n/a
Thanks Steven, but it's definitely IIS that's caching the web pages -
not the client. We have verified this by disabling caching in IE,
looking at the pages from other machines or browsers and by telnetting
into the server and looking at the raw HTTP response (which shows the
old data). The *only* way to force the new page to display, is to
restart the website in IIS or reboot the whole server.

Why is IIS (or the file system) caching the pages and how can we stop
this?

Nick...

v-******@online.microsoft.com (Steven Cheng[MSFT]) wrote in message news:<ge**************@cpmsftngxa07.phx.gbl>...
Hi Nick,
Thanks for posting in the community!
From your description, you found that the files on your IIS Serve such as
(css or aspx files) are always cached and won't be the latest version if it
is modified and requested by client unless appending querystring after the
request url, yes?
If there is anything I misunderstood, please feel free to let me know.

Based on my experience, the such static files and resources such as images,
css files , js files ...etc are all by default cached on the client in the
temporary foler rather than on the serverside. For example, if a user visit
a certain page and the page contains some images and refernce some certain
css or js files. Then the browser will download these resources and cached
in the local disk and next time the page is refreshed (request again) these
resoures files won't be downloaded again from serverside but retrieved from
local cache disk.
So as for your situation, I think the problem you met is likely caused by
the client's cache. And as you've mentioned that this can be avoided( force
the browser to download the file from serversdie everytime the page is
requested) if you append a querystring(need to be different everytime)
after the page's url. So if you'd like the page's refernced resources files
to be downloaded everytime from serverside(the latest version), I think you
can append a tempstamp as querystring after the certain resource file's
url. For example,
if we use a css file as below:
src="common.css"
then now, we replace it as this:
src="common.css?version=<% timestamp %>"

Thus, everytime the page is requested, the css file will be retireved from
serverside (its latest version). How do you think of this?

In addition ,here are some tech articles on browser's cache:
#HOWTO: Prevent Caching in Internet Explorer
http://support.microsoft.com/?id=234067

#How to Use Pragma: No-cache with IIS and IE
http://support.microsoft.com/?id=165150

Hope they're also helpful.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx

Nov 18 '05 #4

P: n/a
Hi Nick,
Thanks for your response. Based on my further research, there does seems to
have a certain issue on the IIS Server, but it is used to focus on win2000
server, here is the kb article on it:

#FIX: IIS Does Not Refresh the File Cache for Non-Virtual Root Directories
http://support.microsoft.com/?id=329459

Please have a check to see whether it could provide some help or clues on
this issue. In addtion, I've searched some other articles on setting cache
via page's http header:

#How to Modify the Cache-Control HTTP Header When You Use IIS
http://support.microsoft.com/?id=247404

#HOW TO: Prevent Web Caching in Windows 2000
http://support.microsoft.com/?id=311006
Hope they're also helpful.
Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx

Nov 18 '05 #5

P: n/a
Hi Nick,

Have you had a chance to check out the items I provided in the last reply
or have you got any further ideas on this issue?
If you have any further questions, please feel free to let me know.
Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx

Nov 18 '05 #6

P: n/a
Thanks, but these articles pertain to Windows 2000 and we are actually
running Windows Server 2003 Standard Edition. We are still
experiencing this problem so if you have any other ideas, please let
me know!

Nick...

v-******@online.microsoft.com (Steven Cheng[MSFT]) wrote in message news:<4n**************@cpmsftngxa06.phx.gbl>...
Hi Nick,
Thanks for your response. Based on my further research, there does seems to
have a certain issue on the IIS Server, but it is used to focus on win2000
server, here is the kb article on it:

#FIX: IIS Does Not Refresh the File Cache for Non-Virtual Root Directories
http://support.microsoft.com/?id=329459

Please have a check to see whether it could provide some help or clues on
this issue. In addtion, I've searched some other articles on setting cache
via page's http header:

#How to Modify the Cache-Control HTTP Header When You Use IIS
http://support.microsoft.com/?id=247404

#HOW TO: Prevent Web Caching in Windows 2000
http://support.microsoft.com/?id=311006
Hope they're also helpful.
Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx

Nov 18 '05 #7

P: n/a
Hi Nick,

Thank you for the response. Regarding on the issue, I am
finding proper resource to assist you and we will update as soon as posible.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security(This posting is provided "AS IS",
with no warranties, and confers no rights.)

Nov 18 '05 #8

P: n/a
Hi Nick,

Thanks for your response. As for the KB, since it is still under reviewing
so we can't get it via the public url. And about the hotfix, it has been
mentioned in it that you need to call the PSS for it:
------------------------------------------------
To resolve this problem immediately, contact Microsoft Product Support
Services to obtain the hotfix. For a complete list of Microsoft Product
Support Services phone numbers and information about support costs, visit
the following Microsoft Web site:

http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS:
http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS

---------------------------------------------------
So the url only provide the address to find the contact info of the PSS.

In addition, have you also checked another suggestions in my former reply?
-------------------------------
In addtion, you should also verify whether or not this is a kernel mode
caching issue you're dealing with by temporarily disabling the kernel mode
cache (UriEnableCache=0, etc.). For details on this, refer to
http://support.microsoft.com/?id=820129.
---------------------------------

Thanks.
Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx

Nov 18 '05 #9

This discussion thread is closed

Replies have been disabled for this discussion.