State Management :: Clear Application Cached Object Without Restarting IIS?
May 26, 2010
I am caching a file in ttpContext.Current.Application object. Now when I change the values in file, it does not get reflected in the application (I am reading the values from the file for app version).
Even after restarting the app pool and the website in IIS, the changes does not reflect. I dont want to restart IIS.
global.asax:-I have defined a struct (my_struct)-I add a List of structs (List<my_struct>) to Application["MyList"] In default.aspx:-I have defined the exact struct (my_struct) and want to cast the Application["MyList"] object to the List of structs.
example: x = (List<my_struct>)Application["MyList"];
I receive this error "Unable to cast object of type 'System.Collections.Generic.List`1ASP.global_asax+my_struct]' to type 'System.Collections.Generic.List`1[_Default+my_struct]'
I have an asp.net application consisting of two web pages and a web service. All components are part of the same project, i.e. I have a solution with only one project. The web service queries a server and fills the information it retrieves into container objects which are stored in the cache of the application. This done using the Cache.Insert method:
OnRemove is my handler that writes the reason into the log file in case the item is removed from the cache. Now from what I understand this example item should never be automatically removed from the cache. Basically this is what I want: It shall stay in the cache until I explicitely remove it. Once the cache is populated by the web service one of the web pages visualizes the cache content using html. The other web site contains a button to manually kick on the web service and one button to clear the cache content, i.e. remove everything in the cache. Unfortunately somehow the cache seems to get cleaned up once in a while. In irregular intervals all containers that are created by the web service and are stored in the cache are removed from the cache. I don't understand the reason for this. The only place in the code I remove something from the cache is when I manually press the clean cache button on one of the web pages.
What is strange is that all container objects in the cache are removed, not just a few. But this is not because the button that cleans the cache is pressed. I know this because a log entry is created whenever that button is pressed. To find out what is going on I attached the OnRemove handler which just logs the reason why a cache item is removed. In my case the reason is "Removed". I simply don't get it. How can I ensure that the cache just stays as it is? Items placed in there shall just stay there. Nothing shall be cleaned up automatically.
I Have a TreeView that I populate from a DataTable.Once it has been populated, I Cache the Treeview.If I try to add the cached TreeView control to my page, nothing happens. No errors no nothing.If I create an empty TreeView control on the page and do a "Do Until" loop and add each node to that empty TreeView, that works! but only once. The next time it loops, for some reasion the CachedTree.Nodes.Count = 0.I can't see what I'm doing wrong.
I'm currently developing a website using VS2010 Express/SQL Express 2008, and am using the applications development server to test.
I have created an access layer which effectively takes all my cachable data and creates datasets.
I've also created a system wheras for each dataset, For each dataset I also create a token cached object (a string), which is set to expire before the dataset. The theory behind this is that when my token expires and is removed from cache, it calls a routine to rebuild the dataset, and re-caches the new result, then creates a new token. Think of it as a poor mans SQL dependency.
What this allows me to do is rebuild datasets behind the scenes with little interruption/delay throughout the day. It all works great - for instance when a user updates a table containing 100,000+ records on the site, the dataset rebuilds at hourly intervals reworking and consolidating the data in the background before representing it in a smaller cachable form.
What I would like to know is this. If I was to replace the database during the usable day (only updating the tables that users don't update), lets say adding 50 new records, would it cause the cache to be dropped. The reason I ask is because it the cache remains until its exipry time, I can replace the database and rebuild datasets incorporating new data in the background when the token expires. If the cache is dropped when I update the database, it will mean interuption whilst I reload the datasets and will change my strategy on uploading new data.
I ask the question because I'm currently working on the development server and unable to test in a live server environment at present.
I have a form that takes the user information. When the user submits the form, after the postback, I need to get all some of the textboxes in the form cleared. I tried disabling the ViewState and ViewStateMode. But both of them failed. Also tried disabling the cacheability for the page. I know I can clear the textboxes on the page load event. But I am curious to know if there is another way to do this.
I have multiple sites with main and subdomain. all doing one same method for the login. login is done with the multi domain cookie but there is problem with the logout. I'm using cookie and session for that state.
When ever I logout form the any domain. I should logout form the all domain.
(Like yahoo or google)
As per my method , My all domain have logout page which has code
[Code]....
and main site(www.domain.com) have [Code]....
So what can I change in this code to do the Logout process for the all subdomains.
I am working on rewriting an application. The previous developers have declared some Private static hashtables within a class in a class library. The first time when the application runs, this hashtable gets populated by running the query. After that this hastable is refrenced elsewhere to get the employee information.Even if the employee is removed from the DB, he is still able access the application, Since the private static hashtable holds the employee information. I totally understand that the hashtable is referenced to prevent the DB calls everytime.
The problem is even after closing the browser and restarting the application the hashtable holds the employee information. How do i get clear this so that it calls the DB?
I have a report parameter page which contains many pop up windows for the parameter selection. For example, for driver , there is a pop up window called driver.aspx which contains a listbox that contains list of driver's name.
Now, for each of these pop up windows, i am passing the values of these windows as a session value.
Now, when a user logs in the system, there are many parameter pages for different reports which commonly share the same pop up windows if the parameters are same for different reports.
The problem now is,a user selects 10 drivers for report 1 and runs it. When he goes to report 2 and runs the report, the report 2 takes only those 10 drivers as the driver parameter value.
It means, the error can arise on the system because he may forgot that he have selected 10 drivers for previous report 1. User will not have time to recheck each previous selected values of different paramaters.
What i want is, when a person moves from one report page to another, i want to clear all the session values and adjust it as default for the new report .
How to set session timeout and clear session in web.config and login.aspx ? And when we close the web application , the session must be cleared? I have use session.abandon as per below but is not working.
I have 4 webpages. In those pages, i am using session variables,viewstates,cookies. I am passing session variables,viewstates to different pages. Now the problem is sometimes i am getting the old cookie values or session values. I want to clear all these things when i close the browser or if i open a new tab of browser.
I would like to clear sessions after hitting back button . Iuse the java script to disable back button how can i clear sessions now after hitting back button.
I use the following script
<script type="text/javascript"> function preventBack(){window.history.forward();} setTimeout("preventBack()", 0); window.onunload=function(){null}; </script>
I am using asp.net 3.5 and use master pages for most of the website. I need to make sure that users after they logout are not able to use the back button to see in cache data.
We have an applicaiton that was converted to the new framework using the wizard in Visual Studio 2008. When we install the applicaiton in production and change the iis settings to use the 2.0 framework we start to see these errors in the event viewer on the web servers. We are using SQL Server Session State and have 3 web servers in a load balancer. Object reference not set to an instance of an object.</Message><StackTrace> at System.Web.SessionState.SessionStateModule.PollLockedSessionCallback...
I have a problem.This particular code when used on local machine is working fine, but when it is used on serverit gives an error like " Object reference not set to an instance of an object.Exception Details: System.NullReferenceException: Object reference not set to an instance of an object._isRefresh = _refreshState == (bool) Session["__ISREFRESH"]; "
I am using the SqlSiteMapProvider to build my Sitemap ... but I'm guessing that this question is valid for any type of site map.
There's a very specific instance where I need to rebuild the sitemap because the user completes a task and I need the Sitemap to rebuild to reflect that. I don't want to get rid of the natural caching that comes with the Sitemap stuff so I'm wondering if there's some way I can clear the cached map just when this certain task gets completed.
Is there some [Sitemap].clear() type method I can run for this?
All we have a global ships position tracking website which runs smoothly until IIS application pool recycles.When there is workerprocess recycling looks like session state expires as a result i loose all session data and when customer clicks refresh button he is redirected to login page.
In web.config Session state mode is set to InProc so i changed it to State Server but to my luck i have MAP object which is not serialiazable which is causing the maps from not appearing on the website.I tried adding serializable attribute to the object class but still not succesfull.Our website is accessed by our customers whose count is more than 1000.
Changing the session state mode from InProc to StateServer can really slow down the response time so Is it good to go further fix the serailizable issues and move to state server?.
Is there any way I can retain my session data when application pool recyles?..
Stopping Application pool from recycling may not be a good idea considering health factor of web server.