State Management :: Memory Size Of Session / ArrayList?
Apr 24, 2010
I am using ASP.NET 2.0.
In my applicaion, I store some values in an ArrayList and store this Arraylist in a session variable. I want to know the size of this session variable in memory. Is there any method to do this.
I am using a Session Arraylist to hold information about an online user. However, I am having troubel accessing the data. The error seems to be in the last bit because I can access one value of sample data just not print out a number of values. I have an class penalyPoint that has the following constructor:
public PenaltyPoint(string penaltyCode1, string penaltyDate1, string PenaltyPointsAwarded1, string penaltyBan1)
Then in a button response I have the following response which holds the data in a session arraylist variable as the user can enter a number of these objects. I will put a capacity limit on the arraylist later on.
//Assign the data in the form to a PenaltyPoint Object PenaltyPoint penPoint = new PenaltyPoint(ddlPen1Code.SelectedValue, txtPenDate.Text, txtPen1Points.Text, txtPen1Ban.Text); //The current driver number has to be set before this page is called //Temp int currentDriver = 0; //int currentDriver = (int)(Session["currentDriverNum"]); //create an arraylist to be used for transferring arraylist to session ArrayList penPointsDrive0Array = new ArrayList(); if (currentDriver == 0) { //if the session is equal to null then nothing has to be returned from session if (Session["penPointsArrayListDrive0"] == null) { penPointsDrive0Array.Add(penPoint); Session["penPointsArrayListDrive0"] = penPointsDrive0Array; Response.Redirect("PenaltyPoints.aspx"); } else { penPointsDrive0Array = (ArrayList)Session["penPointsArrayListDrive0"]; penPointsDrive0Array.Add(penPoint); Session["penPointsArrayListDrive0"] = penPointsDrive0Array; Response.Redirect("PenaltyPoints.aspx"); } }
Then I try to access the data in the arraylist but I getting nothing printing out. I am just trying to test the data at the minute. I am not that use to arraylist so this might be the problem.
public partial class TestPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ArrayList answer = new ArrayList(); ArrayList driver1 = (ArrayList)Session["penPointsArrayListDrive0"]; PenaltyPoint ps = new PenaltyPoint(); string output; for (int i = 0; i < driver1.Count; i++) { ps = (PenaltyPoint)driver1[i]; string answertemp = ps.getPenaltyCode(); output = answertemp; } } }
I can't get the final part to collect all the values into a string it keeps on coming up with errors.
i want to create a arraylist which will able to store user info like (username,machineIP,port ) for each user in the list & retrive this data when needed . any one tell me how i can do it or any alternative way without database or xml file.
I have a problem regarding the SessionState Collection.I retrieve an object
[Code]....
I thought that i access a reference type. But calling the default constructor to build a new object seems not to work.The next time I access the object I still get the old one.
I read the solutioin for this error, at the following link :http://forums.asp.net/p/1046935/1576341.aspxbut I am still not clear what exactly causes the error. I have two doubts :1. Can anyone please elaborate a bit on this issue, with any example ????2. Is there any drawback of this approach ?
I have a DataTable which holds information on truck routes. When the user click on a route it display another table with details about the stop along that route. When they click a stop it shows what items were picked up at that stop. Three separate pages with 3 distinct DataTables. Currently I am storing them in the session. Normally, I would use the view state since the data only needs to live on that page. The reason I use the session is because each page is part of a Master pagelayout. There is an export button in the master page which gets the data in the session and exports it to an excel file. The issue is that when the user goes to the item level detail and uses a quick navigation link back to the route information the data for route is not reloaded into the session, just the page. If the user clicks export it will export the data set from the item level detail even though it is not displayed on the page
How is the best way of putting a lookup table in memory for use though my ASP.NET app? Should I do this in the Global.asax's Application_Start event and keep in Session?
I have a webpage which displays some data along with a banner. The banner image is stored in the database with parameters "Pagename" and "form".
The application has been coded in such a way that when the page loads , a function checks for the banner in cache memory first with the parameters "pagename" and "form". It the banner does not exist, the new banner is retrieved from the database and is added to the cache memory. Next time when the same page is called, the banner is displayed from the cache memory avoiding the DB to be hit everything to get the banner.
Now, I do not want a specific banner to be displayed on the page. I have removed that banner from the DB but the banner still gets displayed as this banner is still there in the cache memory.
Is there any way to delete the banner which exists in cache memory without making any code changes?
I am developing a a web application of a general store where the operator has to enter the things what customer has purchased. Like daily usage item,or anything. So I have form in which I first ask how much item u wannt to register...(if he has 20-30 number of items then operator will enter 20-30 then in gridview 20-30 item are opened. With bind dropdownbox containing name of item ,then textboxs containing mrp, value, stock avail of that item. Here is the link for demo. [URL]. Problem is suppose the operator enter the value above 20, then viewstate size id about 1.50Mb that's too heavy. [Code]....
As I know, by default Cache is stored in the memory and to the disk at the same time DiskCacheable=true).When the cached response is removed from the output cache due to memory pressure, it still remains on disk allowing a much larger set of pages to be cached. In addition, disk cached pages survive application restarts. And this is already in ASP.NET 2.0.I dont't know in which order the caches are removed from the memory and readen from disk instead? I would like to achive, that caches with the minimal trafic, or the longest last used, would be removed first from the memory. Is there some settings to do that, or even by default works that way?
Customer were getting "View State Validation Error" due to worker process recycling at our production webserver and to fix that i applied machinekey and then move my Session state Mode from In Proc to State Server to retain session data and not kick out the customer to relogin. I had serialization issue with one object which has to be stored in session but when i moved it out of session i could able to resolve the issue.
But doing all these i was partly successfull in keeping the user in their session when Worker Process recycle event occurs.I was able to refresh the page or make a post back by clicking the refresh button and also able to retain the session values. But the Problem occurs when sending asynchronous request to server which we do periodically every 15 minutes from the moment the user logs in.The web page doesnot update data on website when sending asynchronous request.By Debugging I found at this particular code point it fails to make a postback which is required.
<%=GetHintFromServer%> (When there is no Worker Process recycle i t gets replaced by WebForm_DoCallback('__Page',message,ShowHint,null,null,false) on postback) Everything works fine when there is no Worker Process Recyling but when it happens looks like sending request asynchronously using javascript fails .Remember When I make a post back by manually clicking submit button everything works fine.
I am new to .net 4.0 and am using EF Model and SessionState Mode=SqlServer and I am getting this error below:
Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.
I checked the stack trace and its complaining about
I marked it as serializable but then it complains about System.Data.Objects.ObjectContext is not marked as serializable and hence throws the same error.
Our ASP.NET App uses ASP State Session Management and has been rebuilt about 2 years ago [With .NET Framework 2.0]. We are currently in .NET framework 3.5 and have moved to SQL Server 2008 - but continue to use the same ASPState database. The State database has been upgraded to SQL Server 2008. Since then we have are seeing timouts/locks on ASPStateTempSessions table. I am wondering if we have to rebuild this database from scratch with some newer scripts?
I'm still debugging my application so it's on the local server. As I debug and stop then debug again, eventually lblNoOfUsers.text turns to "0" instead of "1", even as I'm navigating my application. It only turns to "1" again if I log out and sign back in. It's almost as though Membership.GetNumberOfUsersOnline my login are referencing two different session states. How is this possible? Does asp.net create a new session state cookie each time I start debugging?
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.
I have a clear button and a textbox in an aspx page. I set the session variable in this page as
String str = Textbox1.Text;
Session["TypeIds"] = str;
and I clear the sessions in a clear button event as
Session["TypeIds"]=null;.
Then when the user types some value in the textbox ,on Response.Redirect on another aspx page, the session variable returns null values.It does not retain its session state. The session state has to be maintained in the next page. Is it because this clear button event and setting explicitly to null creates this problem?
The fix for this error message is to run [Code]..... I have run that uptown, downtown and in my lady's chamber and it does no good, although it never complains. Are there any other possibilities?Details: IIS Server: v5.1 running on XP. SQLServer 2005 running on a different XP box.Microsoft .NET Framework Version:2.0.50727.3615; ASP.NET Version:2.0.50727.3618 There is an ASPState database on the server, containing only two tables: [Code].... and [Code]..... I did not use [Code].... when I ran [Code].... .
I am building a web app that is limited to one database, therefore I cannot use the ASP.NET config tool. As a quick means of getting this app online, I tried to use a simple session variable. The login page verifies the user's credentials, and if they pass, it sets the session variable to a certain value. All other pages check in the page_load event whether or not the session variable is equal to that value. The problem is that once being logged in for a short while and sending and recieving some data, the session variable resets, and I'm returned to the login page to repeat the process. Here's the basic code from my webforms:
[code]....
Is there some setting I need to change in the web.config file to adjust the cookie timeout or is that only for the config tool authentication methods?