C# - How To Invalidate Cache When The File Which Is Cached Changes
Dec 17, 2010
I read few xml files from a location and cache them using Http context cache. Anytime the xml files changes i have to do a IISReset to view the latest changes.
I use this
System.Web.HttpContext.Current.Cache
I have to use the caching as i don't want to read all the xml files all the time. i read it once and caches them for a day. They get reset whenever apppool recyles or anyone manualy do a IISReset.
Is there anyway in asp.net to invalidate the cache if someones changes the xml file.
View 1 Replies
Similar Messages:
Jun 3, 2010
I have the following .NET VB code to set and read objects in cache on a per user basis (i.e. a bit like session)
'' Public Shared Sub CacheSet(ByVal Key As String, ByVal Value As Object)
Dim userID As String = HttpContext.Current.User.Identity.Name
HttpContext.Current.Cache(Key & "_" & userID) = Value
End Sub
Public Shared Function CacheGet(ByVal Key As Object)
Dim returnData As Object = Nothing
Dim userID As String = HttpContext.Current.User.Identity.Name
returnData = HttpContext.Current.Cache(Key & "_" & userID)
Return returnData
End Function
I use these functions to hold user data that I don't want to access the DB for all the time. However, when the data is updated, I want the cached item to be removed so it get created again.
How do I make an Item I set disappear or set it to NOTHING or NULL?
View 1 Replies
Feb 4, 2011
It's great to be able to output cache child actions, but how do I invalidate that cache?
I've been trying to use [Code]....
View 3 Replies
May 8, 2010
I'm having an issue when using the Asp.Net Cache functionality. I add an object to the Cache then at another time I get that object from the Cache, modify one of it's properties then save the changes to the database.
But, the next time I get the object from Cache it contains the changed values. So, when I modify the object it modifies the version which is contained in cache even though I haven't updated it in the Cache specifically. Does anyone know how I can get an object from the Cache which doesn't reference the cached version?i.e.
Step 1:
Item item = new Item();
item.Title = "Test";
Cache.Insert("Test", item, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
Step 2:
Item item = (Item)Cache.Get("test");
item.Title = "Test 1";
Step 3:
Item item = (Item)Cache.Get("test");
if(item.Title == "Test 1"){
Response.Write("Object has been changed in the Cache.");
}
I realise that with the above example it would make sense that any changes to the item get reflected in cache but my situation is a bit more complicated and I definitely don't want this to happen.
View 2 Replies
Oct 25, 2013
when i first run my applcation some time its showing the data from cache.i want to avoid it in first time .
i want to cache my all images/css/js file what is the efficient way to do it.
i have lot of images folder /js /css files.
View 1 Replies
Jan 17, 2010
U are caching a list of items, then Add or update or delete method called. Approach 1)
A- Do the data change at the database. If success do B, C
B- Remove the entire list from the Cache.
C- Re-Cache the list on first read.
Approach 2)
A- Do the data change at the database, If success do B
B- Do the same change at the cached items, and save more time.
Approach(2) probably will cause nasty difficult to spot bugs, because the data come from BLL and placed directly into cache, One can't assume no bugs will happen at the sproc, I am not worry about database runtime errors, runtime errors will show up, but I am worry about invalid data, or miss calculation. Can I proceed with approach (2) with caution? Is there a "best practice" principle which suggest not doing approach(2)?
View 2 Replies
Oct 28, 2010
I have used a external js file for a upload operation in my page.. once the file get loaded in temporary folder, it gets loaded from there even if new changes are made the old version that exist in temp folder gets loaded... i have writtenResponse.Cache.SetCacheability(HttpCacheability.NoCache); on my page But it still loads the js file in cache. When i cleared the temporary files manually it works fine...But i cannot ask my client to clear temp folder,,,Is there any solution to load js file not from the cache, ie reload every time page is loaded...
View 2 Replies
Mar 17, 2011
My web application is using the asp.net cache object to store data from the database. I am looking for an elegant to invalidate cache objects but haven't come up with anything elegant yet. It is easy to invalidate a single record or a list of all records in a single table, by keeping track of their cache keys. However I may have any number of lists of subsets of a table's data. I would like to invalidate only the cache records of the lists that contain a particular record, when that record changes. I don't want to have to invalidate all the lists of data for that table if only one of the lists contain that record.
View 1 Replies
May 3, 2010
i've got a website that uses OutputCache attribute to cache pages. Works great.
Now, I'm in the middle of R&D'ing scaling up this site to be in a web farm. Along with the usual suspects for webfarm pain ... I've noticed (pretty quickly/obviously) that the OutputCache from Server_A doesn't invalidate the OutputCache from Server_B .. if a try and invalidate a single server's OutputCache. This makes total sense -> how can S_A 'tell' S_B to invalidate when they are physically 2 seperate machines, etc?
So - what are our options?
Velocity? I understand this will move the caching to a different layer .. which means that the final result (output) will always be required to be determined .. as opposed to the OutputCache whic remembers the final output content (yes, varby gives different versions, etc.. which is totally fine). So even though the poco or business objects are all sync'd, there's still that last rendering effort required (even if it's tiny .. compared to the effort to generate/sync business objects).
View 2 Replies
Feb 19, 2010
I want to restrict my application user to Navigate his previously visited page, How can we achieve this?
Somebody says we have to disable Back Button etc.
One of the possible solution is keep the below code in Page_Load event
[Code]....
View 5 Replies
Jul 10, 2013
<asp:Image ID="aspImagePreview" runat="server" AlternateText="Preview" Height="190px" Width="290px" ImageUrl="~/file1.jpg" />
when the file file1 has been changed or removed. How can I do one refresh to the item to make it reflect the recent change?
View 1 Replies
Jul 5, 2010
I have asp.net application. I'm using external javascript files in my application. When I test my site with page speed tool from google it says that following resources are missing a cache expiration. also some of the images and css files.
View 2 Replies
Feb 8, 2010
How to write to a file the content of cache when Cache expires.
View 1 Replies
Mar 8, 2011
I use MenuXML.xml file as datasource of XmlDataSource control in my MasterPage.master, it will be reloaded again and again.
View 1 Replies
Sep 27, 2010
I configured cache dependency on a file on the server, the cache dependency event stops responding to file changes once in 2 or 3 days. After I perform IISReset on the server, it works fine.
View 1 Replies
Jan 30, 2010
We are writing a portal and like every portal we store html data in Db fro Modules. So I thought that I can cache each module in files. I use OnLoad event to check if there is a cache file for this Module, use that and else create cache file:
if (!IsPostBack)
{
string Path = AppDomain.CurrentDomain.BaseDirectory + "CacheModules" + ModuleId + ".dat";
if (File.Exists(Path))
{
Controls.Clear();
[Code]....
what do you think? retrieving data from file can slow server more than retrieving data from DB?
View 3 Replies
Dec 1, 2010
where external files / images are being loaded from. By this I mean that I'm aware that external JS files / Images are cached on the first load of a page. What I'd like to have is a tool that confirms to me that on subsequent requests these files are in fact being loaded from the users cache rather than downloading the file again.
View 3 Replies
Mar 3, 2011
I have a navigation on my site that retrieves it's links from xml file..Does asp do this everytime a link is clicked on my site..I'm using a master page and the navigation code within the master page is below..So is the xml file opened and read each and every time? any way to cache it or something.below is my code
[Code]...
View 5 Replies
Jan 30, 2010
We are writing a portal and like every portal we store html data in Db fro Modules. So I thought that I can cache each module in files. I use OnLoad event to check if there is a cache file for this Module, use that and else create cache file:
[Code]....
View 7 Replies
Mar 24, 2010
I am using swfupload to upload files on a website, the problem that every time the user open the page which contains the upload button, the page loads completely then the flash file start loading from scratch every time the user visit the page with no cache. Is there a way to preload and cache .swf files in my asp.net page?
View 3 Replies
Jun 28, 2010
how to remove css,java script file from browser cache for IE6 and IE7 ?
View 4 Replies
Nov 24, 2010
i uploaded a new version of my website. and some users complained that they see some page i changed very very wrong. anyway after a refresh they see it fine. i think its because my css file got cached by them on an earlier time...why isnt the browser downloading the css file by himself on first load?..
View 4 Replies
Dec 27, 2010
We are writing a portal and like every portal we store html data in Db fro Modules. So I thought that I can cache each module in files. I use OnLoad event to check if there is a cache file for this Module, use that and else create cache file:
if (!IsPostBack)
{
string Path = AppDomain.CurrentDomain.BaseDirectory + "CacheModules" + ModuleId + ".dat";
if (File.Exists(Path))
{
Controls.Clear();........
View 1 Replies
Mar 29, 2010
Is it correct to implement my caching object like this in my controller :
[code]....
And I Use it like this :
[code]....
View 1 Replies
Sep 29, 2010
TL;DR: Which is likely faster: accessing static local variable, accessing variable stored in HttpRuntime.Cache, or accessing variable stored in memcached?At work, we get about 200,000 page views/day. On our homepage, we display a promotion. This promotion is different for different users, based on their country of origin and language.
All the different promotions are defined in an XML file on each web server. We have 12 web servers all serving the same site with the same XML file. There are about 50 different promotion combinations based on country/language. We imagine we'll never have more than 200 or so (if ever) promotions (combinations) total.
The XML file may be changed at any time, out of release cycle. When it's changed, the new definitions of promotions should immediately change on the live site. Implementing the functionality for this requirement is the responsibility of another developer and I.
Originally, I wrote the code so that the contents of the XML file were parsed and then stored in a static member of a class. A FileSystemWatcher monitored changes to the file, and whenever the file was changed, the XML would be reloaded/reparsed and the static member would be updated with the new contents. Seemed like a solid, simple solution to keeping the in-memory dictionary of promotions current with the XML file. (Each server doing this indepedently with its local copy of the XML file; all XML files are the same and change at the same time.)
The other developer I was working holds a Sr. position and decided that this was no good. Instead, we should store all the promotions in each server's HttpContext.Current.Cache with a CacheDependency file dependency that automatically monitored file changes, expunging the cached promotions when the file changed. While I liked that we no longer had to use a FileSystemWatcher, I worried a little that grabbing the promotions from the volitile cache instead of a static class member would be less performant.
(Care to comment on this concern? I already gave up trying to advocate not switching to HttpRuntime.Cache.)
Later, after we began using HttpRuntime.Cache, we adopted memcached with Enyim as our .NET interface for other business problems (e.g. search results). When we did that, this Sr. Developer decided we should be using memcached instead of the HttpRuntime (HttpContext) Cache for storing promotions. Higher-ups said "yeah, sounds good", and gave him a dedicated server with memcached just for these promotions. Now he's currently implementing the changes to use memcached instead.
I'm skeptical that this is a good decision. Instead of staying in-process and grabbing this promotion data from the HttpRuntime.Cache, we're now opening a socket to a network memcached server and transmitting its value to our web server.This has to be less performant, right? Even if the cache is memcached. (I haven't had the chance to compile any performance metrics yet.)On top of that, he's going to have to engineer his own file dependency solution over memcached since it doesn't provide such a facility.
Wouldn't my original design be best? Does this strike you as overengineering? Is HttpRuntime.Cache caching or memcached caching even necessary?
View 2 Replies