State Management :: Cached Items Automatically Deleted?
Apr 20, 2010
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 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.
Cookie is not deleted if another browser remained opened even the current one is closed. I also include the code to get the cookie expired . But it only works properly when user closes all browsers.
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 listview control, in it each item will have a checklist eg - Pass / Fail which will then have a label displaying the selected value. I also have datapager wired up to the listview.
When i toggle between the datapages and toggle back, any result previously submitted will be wiped.
I am thinking i should be using session state to temporarily store then info, and then once the session is finished use a submit button to send all values and ids into an xml.
1. Is this the right way of approaching the situation?
2. How would i specify session state for listview items, eg would i angle it through a itemdatabound event or the application itself?
I am using session on my online application if im wrong let me know when i wana remove session i will put this code
session.remove("userid")
and also im using session for user login when user login on that time i have create one session("user_rights")
if session("user_rights") is nothing then Response.Redirect("Logout.aspx") end if
but some time on working time session automatically or i dont know exactly session expire and on running time it go out i mean logout...and at that time if im doing something on my application all will be lose how can i make strong my session ... here is web.config code
In my application, session value automatically set into null.In certain workflow only it will set as null (Normally It's able to access value). Example, at the time of login, I will set session values. While, user deleting some entries from drop down list of specifc page,client script will show message like selected entry deleted. After that, flow point will move to master page. There I have to access session variables. It's getting null value. I tried to debug with Quick watch, at the pageload of master page only value set into null (automatically).
I only made 1 other dynamic page before, without users. I do remember I setup a read-only user to the database and that was the user used in the connection string, simple.
In managing multiple users, does asp.net's membership & roles automatically switch up the databases connection string upon login? Do you setup hypothetical "groups" of user access permissions in your database (mysql) then associate that user to that group in membership & roles?
I'm just looking for a general idea of what to expect before I start reading.
i've a songs website, where i'm adding items to cart for users who are logged in, but when a song is deleted from the website the users still have the cart info still intact, i'd like the songs in the cart also too be deleted when the song from the website is gone, how may i accomplish this ?
The Silverlight app has a link to a different group of reports. This *was* working fine but no more. In the following code you can see the 'Reports' part that it calls another page [URL] namely right here: WHat is happening is when the reports page is called, it goes into 'Session timeout ' right away.
An instance of the shopping cart is created like this:
If HttpContext.Current.Session("ASPNETShoppingCart") Is Nothing Then Instance = New ShoppingCart() Instance.Items = New List(Of CartItem) HttpContext.Current.Session("ASPNETShoppingCart") = Instance Else Instance = CType(HttpContext.Current.Session("ASPNETShoppingCart"), ShoppingCart) End If
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Try loginRep = BusinessLogic.SR.GetUserName("99999") System.Web.HttpContext.Current.Items.Clear() System.Web.HttpContext.Current.Items.Add("RepId",loginRep)
I don't any errors and when in the run in the immediate window:
? System.Web.HttpContext.Current.items("RepId") in the immediate window on THAT page I get the OBJECT.
Then I have a hyperlink with navigateurl to the next page "~/ActCnt.aspx"
On that page, ActCnt.aspx, when in the code I have:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadIf Not Page.IsPostBack Then Dim loginRep As BusinessLogic.SalesRep = System.Web.HttpContext.Current.Items("RepId")
In the immediate window ? System.Web.HttpContext.Current.Items("RepId") returns a String that is equal to "RepId".
Even if I change it to not be an object, but a string I only get the Name "RepId" of the keypair. I have NEVER gotten the actual value.
I have a multiview inside an updatepanel. in one of the views, I save a value in a session object like this:
Session["xyz"] = "some string value";
Then I switch to another view and try to pick it up the value in a button's OnClick event:
string x = Session["xyz"].ToString();
But I get a null reference error. Debugging it shows that Session["xyz"] is indeed null, yet other Session variables are still there. Is there something special about Session and AJAX?
my requirement is to delete database value automatically on a given date. In my application i am inserting records in database, now admin will give the expiration date for the value inserted in db. On that particular date, the value should be deleted automatically. I want a logic for this in asp.net. I am using SQL 2005 with C#.
I found some code on the web and it threw me off. Look at the code below. You will notice only when the Hits == 1, does the cache get added. After that, the cache object isn't updated. It begs the question, does the object when updated, update the cache as well automatically? The answer here would make me remove some code in some of my classes.
Iam a newbie in Linq to Sql. I have some problems with my deleting items function. assemble the code together:I must have the following code accumulated.
I have a page that allows visitors to register for an account, but I want this page to automatically redirect to a "registrationClosed.aspx" page on a specific date...
I am doing a POC of making my website run faster. Currently it stores huge object data in Session while passing information from one page to another. What I was thinking is to use shared methods and properties instead of session. It works, but wanted tocheck if this is an optimum way to do it. Below is the code that does not use session but still pass object data from one page to another:
i have a form on page1.aspx with several controls (textbox, dropdownlist, etc).on Page1 PageLoad event i load data from database and performe databinding.From Page1 a user can, by clicking a specific button, move to Page2.aspx to insert some details and, after saving details, he returns to page1.
if save changes are made on control on page1 before save them to db, obviously, these are lost on return from page2 (because are reloaded on pageload from db).How can i save control status between pages round trip?