I am researching output caching options for a project I'm working on and have come across a couple issues/problems.
First appears to be in the documentation located here (and other places):
"The kernel-mode output cache supports the varyByHeaders attribute, but not varyByQuerystring."
This statement appears to be backwards - i.e. it actually supports varyByQuerystring but not varyByHeaders, which makes more sense to me. This threw me for a loop for a while.
This seems to be verified via my own testing as well as the below comment by Anil Ruia - Senior Software Design Engineer IIS Core Server in this post
"kernel cache always varies by the complete query-string and never varies by header, you do not have the option of configuration query-string/header vary with kernel-cache."
Now, all that said, I've set IIS7 up for Kernel Mode caching in my application, set up my test (simple aspx page that outputs current server time & querystring var) and all appears to work as expected in IE9 & verifying with Fiddler that the server is actually returning the data (not just IE caching). However, if I request the same page with Firefox or Chrome, I'm always delivered a fresh page with a fresh server time.
Any ideas or knowledge on IIS7's behavior that would cause this?