State Management :: Viewstate Size Too Heavy (Around 2MB)
Sep 16, 2010
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]....
Now here is the weird thing. First i am running it locally on the built in vs2008 web server.I load my control in fine, do a postback from a linkbutton, locally on my machine it all works fine, no issue.However when it goes onto my host, it falls over with the message:
Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request.Now i also load controls dynamically and use postbacks and things in the admin area of the site...and that works fine, however my front end just keeps failing? See the code behing below:
I have been getting this error a lot lately with some of my users, and I had a couple of concerns with view state and I have read so many articles but I am still lost..
1. I use masterpage on all the pages and I need viewstate for some of the pages but..
There is a page where a user will fill out the information and then submit this data to a cgi server, and it is where I get most of the Client Disconnected errors, what would happen if I disable viewstate when they click on that button?
Now when a user browses from one page to another, does the view state from the previous page get deleted? If not how would I delete it?
Does the master page have its own viewstate? Would I be able to make sure none of items on my master page are using the viewstate?
I want to know that when we create custom controls, then is there State Management through ViewState done automatically or we have to handle it explicitely ?Since i have created Custom Controls that is behaving as if it is not maintaining its state on PostBack.
I start with a blank ASP.NET page where I disable ViewState for the whole page with EnableViewState=False and even ViewStateMode=Disabled.keep adding various controls to the page -- Label, Table, Calendar, TextBox, DropDownList.Everything looks good, i.e. my __VIEWSTATE tag fluctuates between 24 and 28 characters.As soon as I add a single RadioButton (or CheckBox), the __VIEWSTATE shoots up to 130 characters. And it keeps growing by over 100 characters every time I add another RadioButton.
I have a code like this in the Me.LoadComplete event.
[Code]....
Now I would like to set this viewstate("data") = nothing on a certain button click in a user control (.ascx) in this page but it doesnt clear the viewstate. What am I doing wrong? In the onClick even of the button in the .ascx I write Me.viewstate("data") = Nothing
I want to use textbox value after I visit from current to other page then again to current page using viewstate but value should be the one when I was current page last time.
I am creating a simple string of values that get added to a label after a post back. I am setting the values thorugh ViewState. However, my appended values do not get updated until AFTER the 2nd postback. Example:
On Page_Load the label displays a "0";
If I enter a "1" in the text box and click the button the label still displays a "0";
If I click the button again (the 2nd postback) then my label correctly displays "0,1"; This works for whatever value I enter after. i.e. "0,1,35,hello world", etc.
I stored a list<mytype> object in a viewstate. Type of list<mytype> comes from a public structure which is defined at page.
When I try to convert viewstate to a list<mytype> object it cause error.
Public struct mytype {....} Page_load() { list<mytype> obj = new list<mytype>(); viewstate["mystate"]=obj } My_function(){ list<mytype> tempobj = new list<mytype>(); tempobj = (list<mytype>)viewstate["mystate"];// this line cause error ! }
I want to store List<Class> object to ViewState, when i try to do this than its giving me error to make class serialize,but my class is partial class so didn't get serialize keyword on class how can i store List object to viewstate.
i want to store IQueryable value to ViewState. my code is as below:
Private Property _Query() As IQueryable Get Return CType(ViewState("_Query"), IQueryable) End Get Set(ByVal value As IQueryable) ViewState("_Query") = value End Set
but when i run my page i get following error:
Type 'System.Data.Linq.DataQuery`1[[DynamicQueries.VW_EmployeeProfile_Filter, DynamicQueries, ersion=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' in Assembly 'System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable
what should i do to get rid of this error. previously i was doing like this:
Private Shared _Query As IQueryable
but problem is that in Multi users environament, Shared variable is making problem, that is why i want to store it in ViewState.
As you know viewstate can recognize as a vulnarable item if we do not encrype it I know how to encrype the viewstate that I define in a web page but my problem start from here I downloaded a software which help you to exract the unencrypted viewstate of every website the link of that software is as follow:
[URL]
but when I make even empty page without viewstate ,this program can extract the viewstae of my page but if check some website like google ,yahoo,amazoon
I have an application that I am working on. We are experiencing odd outages daily. The outages actually bring down the Virtual Servers (web farm of 4 VMs). The last odd metric before VM becomes inaccessible is that disk I/O is at 100%. While discussing this with the client, an idea was thrown out that I wouldn't have considered because I have never heard of such a thing. The idea was that our immense ViewState (yes I will be working on reducing that in the next release) overwhelmed the server or something and the server needed to start writing the ViewState to a file in a temporary folder somewhere. The thought was that when the server started to get overwhelmed, it would have to queue requests and would run out of memory and need to start using disk.
My application is poorly written and the viewstate is completely overused. However, it works 23+ hours of the day including through peak times without problems. But I have never heard of IIS or ASP.NET writing information to files on the server while queueing requests. I had no answer for this seemingly outrageous theory. Can anyone confirm for me that this is not how ASP.NET (2.0) or IIS are written?
In our control environment, we've started, somewhat intermittently, getting:
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
on our website.It also suggests:
Source Error: The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:
1. Add a "Debug=true" directive at the top of the file that generated the error. Example:
<%@ Page Language="C#" Debug="true" %> or:
2) Add the following section to the configuration file of your application:
Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.
Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario.
We already have compilation debug as true. We have upgraded our website to ASP.NET 4.0, although our middle tier components are still at 3.5. As we do in out production machine configs (which are using ASP.NET 3.5) we have
This control environment is not in a server farm. Why is it suggesting that I turn on debug, when it's already on. Why isn't it showing me my source code?
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
my website was designed using dotnet 2003 worked under dotnet framework 1.0 the website was working fine then i had to upgrade the server to windows 2008 iis 7.0 so i configured the website to work under dotnet frame work 2.0 and the problem started to show up
I have a project in which several modules need to retrieve assorted scalar values (ie. int, string, etc.) before the ViewState is reestablished. To date I've been using the Session object for this though things are getting somewhat unwieldly now. Also Module A's session variables should really only be accessible by Module A, Module B's session variables really only accessible by Module B, etc. - yet with the Session object no such scope is available.
I am having trouble turning off viewstate for the controls in a page/form. Whatever I try the controls preserve & display the user input. I first turned viewstate off at control level, then page level and finally site level,yet still the form repopulates with values entered.
Inspite of all this the textbox, checkboxes, dropdowns etc preserve and display the user input on postback. Obviously I am doing something 'dumb' or laboring under a misconception. I'd like to know what!
Incidentally a gridview on the same page which displays all records from the table the form is used to fill can be disabled, ensuring it shows all records + the new one).
In my website for one project we have 5000+ records in sql database. If I give page size is 100 for gridview then the paze size showing 800kb in firebug net panel and it is taking 20-30 seconds to load webpage. If I give page size is 10 for gridview then the paze size showing 160kb in firebug net panel and it is taking 5-6 seconds to load webpage. If I give page size is 5for gridview then the paze size showing 130kb in firebug net panel and it is taking less than 6 seconds to load webpage. I noticed that due to heavy paze size the performance decreasing but as per my requirent the paze size should be 100 or above and the page should be load less than 2 seconds.
I am having this problem with, it seems, Viewstate. This issue only occurs on certain machines, if I browse the website myself it works fine but if another user browses the pages they will lock up and timeout with the error "Viewstate verification failed. Reason: Viewstate was invalid." appering in the event log. Full error is as follows: