Viewstate error : 12031
Few days ago I was asked to look into an issue. In our
application we have created dynamic grids to show data from
database. This ASPX page was Ajax enabled. Moreover all the
rows of the grid were in edit mode ie. the normal controls
like textbox,dropdowns etc were displayed in all the rows.
This grid was Paginated. But for the past few days the
paging was not working.
I executed the page and found that the page was generating
an error 12031 with the following message
Sys.webForms.PageRequestManagerServerErrorException:An
unknown error occurred while processing the request on the
server .the status code returned from the server
was:12031.
On my first round of analysis I found the issue
with Viewstate. If the viewstate is large then connection is
reset (ERROR_INTERNET_CONNECTION_RESET ). In local machine
with less load this problem will not occur but as the load
& network latency increases this error will come. Once
this error is generated the general events of grid is not
triggered. So advised my team to minimize the use of
viewstate. It will help in to load the page faster &
reduce the network traffic. I can increase the
maxRequestlength value to allow more data but ideally i
shouldn't increase that.
In the page tested by
me a page with grid with 372 rows generated a viewstate of
4.2 mb. you can disable viewstate using
EnableViewState="false" for the individual controls and for
the entire page also.
With every post back this
much of data is transferred back & fro & this will
result in low response time.
The developer was saving all the data into viewstate in page load and from that the data was populated to the grid.
Better solution is to retrieve only the required data from
database, minimize the use of viewstate, Viewstate can be
compressed also. About all these I will update in another
post.