Here is one very typical issue that bring you to this blog.
Issues, I have one asp.net application with nothing special, for the performance consideration, we turn on the output cache. somehow, the same page never got cached on some servers, and It did cached on most servers. of vice versa.
short answer, It has nothing to be with the IIS Version. It’s All about HTTP Cookies and .net Framework version. Let’s put a very basic Page.
just turn on the output cache using the most simple way,
for the code, we just send out some cookie,
Let’s start from some server that it works,
1st time you hit the url, get a initial access time.
and cookie was sent to client from server side,
try again, this page will be cached. you are always see the page, you are 1st time here,
Why? because we setup the page need to be cached for 600 seconds, and cache response vary by any params, if we add something to the url parameter, we wills see refreshed page,
that’s the end of this cache working story, if we deploy the same code to another server, results are totally different.
1st time,
retry,
Why? I did a lot check, and find out the reason is simple. IT’S BECAUSE OF THE .NET FRAMEWORK VERSION.
In earlier verison of the FX, if you check the ouputCacheModule , it will cache response without checking the cookie value, that means even response has a server side cookie, it will still cache the response.
But for newer version, it will simply ignore the cache insert if response has cookie associated.
my old version is, .4209, it never check cookie when cache response. that means you may see other people’s response (like login name?)
new version,.5456, it will check cookie which is more safe.
Hope it helps.