Disclaimer

Any opinions expressed here are my own and not necessarily those of my employer (I'm self-employed).

Nov 8, 2010

Lesson learned: HTTP modules can also affect WebResource.axd

HTTP modules can be very useful. In fact, I love them. The scope of this post is unfortunately not to explain what they are or what they do. If you're not familiar with what a HTTP module is, get an overview here and see how to create one here.

ASP.NET features some built in handlers: WebResource.axd and ScriptResource.axd. You'll see requests to these in any ASP.NET application, as they're used to serve builtin scripts for e.g. postback or client side form validation. By default, the ASP.NET application will configure these to expire from cache after a year.

Today I discovered a side effect I had not thought about. HTTP modules are loaded by the application, and are hooked into the event pipeline for each and every request handled by the ASP.NET application. In fact, this also includes requests to the WebResource.axd and ScriptResource.axd handlers!



Say you make an HTTP module that sets the cache policy for all responses — this is a nice trick to enforce a coherent cache policy for all pages across a website. Well, you just enforced your policy upon the built in handlers, which was probably not what you wanted. By default their response will be cached for an entire year, and reducing their time to live will obviously affect the load on your servers. You might even expire them immediately, forcing users to reload unchanged scripts on every page load (I know someone who did).

So, keep in mind that HTTP modules are also run for the built in handlers — or be prepared to taste the side effects.

As a final note, since we're discussing WebResource.aspx and caching: Make sure that the ASP.NET application is run with the <compilation debug="false"> setting, or else the framework will ensure that built in resources are not cached. ScottGu explains why on his blog, and one of the ASP.NET engineers elaborate further on the details of this setting on her blog.

To verifiy that the cache setting for the WebResource.axd is sane, use e.g. the Fiddler tool to inspect the response headers. You should see a date header with the current date, and an expires header with a date a year into the future, like this:

Date: Mon, 08 Nov 2010 14:57:24 GMT
Expires: Tue, 08 Nov 2011 14:57:24 GMT


Happy caching.

25 comments:

  1. It's a good trick to set cache expiration to "infinite" and instead use a version number in the query string to the resource. Then for each new version the users with the old outdated resource will immediately fetch the new resource from the server. If a resource lives for a long time without being changed then users never have to refetch it for that time.

    The page that references the resources either is always expired, or has a very short expiration.

    Ex: <script src="myfile.js?version=1"></script>

    ReplyDelete
  2. You're right! This is essentially what happens for resources served by WebResource.axd.

    ReplyDelete
  3. Awesome post, I learned something new today! I just forwarded your post to the BlogEngine.Net team as something they should be aware of.

    ReplyDelete
  4. I'm glad to hear that you found this information useful!

    ReplyDelete
  5. You can find a lot of helpful info in the Internet. For me https://essaydragon.com/blog/creative-essay-writer is very important, cause I'm a writer.

    ReplyDelete
  6. I have read your blog and I gathered some needful information from your blog. Keep update your blog. Awaiting for your next update. Thanks
    DedicatedHosting4u.com

    ReplyDelete
  7. This article makes life happy, bright and gives good ideas.
    Sa gaming สมัคร

    ReplyDelete
  8. Many new website owners face http related issues because they have not enough knowledge about it. I will suggest that they should contact with seniors and solve this issue. Dissertation proposal writing services.

    ReplyDelete
  9. Again, I am very tired of Joe Biden. Not because I am a purist, or have inflexible ideological commitments of what Coach Outlet it will take to remove Coach Outlet Store Donald Trump from office. But rather because Biden's condescension towards black communities is intolerable.I want to believe that Biden's condescension started after the respected Representative James Clyburn called Ray Ban Outlet the former vice president an "honorary black man" at a private dinner in March.

    The carbon structure and the taphonomic mode associated with these films were investigated using Raman spectroscopy. Our analysis confirms that these reflective films are kerogenous, showing a higher D1 Coach Handbags Clearance (disordered) band and G (graphite) band intensity and area, indicating a greater concentration of Yeezy Boost 350 Ray Ban Glasses disordered carbon compared to the surrounding matrix. The spectral characteristics of the fossils denote moderately ordered New Jordan Shoes 2020 kerogenous matter, indicating that the transitional Buen Formation that hosts the Sirius Passet was thermally Yeezy Discount altered at a peak temperature of 409 50 C.

    ReplyDelete
  10. In earlier eras, these were reflected through sitcoms, light family comedies, late century Updike novels. When we had free range children, a kid's weekend would begin a lot like that image of John Wayne in "The Searchers," hovering at the front door, an expanse of land before them. Then, at least since the 1970s John Carpenter's "Halloween," say our image of American front lawns became less benign..

    Just basically didn have, he didn know how to tell other people what to do and how to command, I felt, Lout said. Didn't think he was the man for the job then, I don't think he's the man for the Coach Outlet Online job now. As far as it being a black or white issue, I pushed for a white and I pushed for Cheap Michael Kors Handbags a black man as candidates for that job.

    The Zeiss VR One Plus headset is comfortable Nike Air Force 1 Cheap Outlet to wear, lightweight, and Jordan Shoes For Sale you can still Ray Ban Outlet wear your Coach Outlet Clearance Sale prescription glasses. MK Outlet Online One of the best features is that there is a universal smartphone tray, which means you Best Yeezys can use most phones (from 12 to 14cm). The lenses are quality Zeiss glass, but image quality is limited both by your phone and the app you using...

    ReplyDelete
  11. Watch live action from the 2021 Tokyo Olympic Games, check TV listings and event schedules on NBCOlympics.com.Olympic Live Streams - TV Listings and Schedule

    ReplyDelete
  12. Thank You for Providing Such insightful information. If someone is looking for the Quickbooks customer service in US.

    ReplyDelete
  13. I am very pleased to meet your website.
    مخبران کیان پانل

    ReplyDelete

Copyright notice

© André N. Klingsheim and www.dotnetnoob.com, 2009-2018. Unauthorized use and/or duplication of this material without express and written permission from this blog’s author and/or owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to André N. Klingsheim and www.dotnetnoob.com with appropriate and specific direction to the original content.

Read other popular posts