ASP.Net. The connection to the server has been reset!

First of all, duh! If there are issues with the connection server, look into the Windows Application Event Log. But we'll get there.
The "error" appeared at any postback after I loaded a certain page, but only if that page displayed a minimum of data. Above that threshold I would get the server reset thing that you can see both in IE7 and FireFox2 in the animated GIF. Basically the error messages were:
FireFox
The connection was reset
The connection to the server was reset while the page was loading.
Internet Explorer
Internet Explorer cannot display the webpage
Internet connectivity has been lost.
The website is temporarily unavailable.
The Domain Name Server (DNS) is not reachable.
Ajax UpdatePanel
Server returned error 12031
So, today I realised I should look in the Application Event Log and this Web Event Warning was displayed (shortened it a bit):
Event code: 3004
Event message: Post size exceeded allowed limits.
Process information:
Process name: aspnet_wp.exe
Exception information:
Exception type: HttpException
Exception message: Maximum request length exceeded.
Stack trace: at System.Web.HttpRequest.GetEntireRawContent()
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.get_Form()
at System.Web.HttpRequest.get_HasForm()
at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
It turns out I was putting a lot of data into the ViewState, which, as you know, is saved as a HiddenField (a.k.a. hidden html input) and the size of it exceeded the set up maximum POST size.
Solutions:
A. Add this code to your page: (NET 2.0)
protected override PageStatePersister PageStatePersister
{
get
{
//return base.PageStatePersister;
return new SessionPageStatePersister(this);
}
}
This should put your ViewState into the Session, rather than in the page. This solves some other issues as well, obviously.
B. Increase the maximum Request limit (default is 4Mb)
- In the Machine.config file, change the maxRequestLength attribute of the <httpRuntime> configuration section to a larger value. This change affects the whole computer.
- In the Web.config file, override the value of maxRequestLength for the application. For example, the following entry in Web.config allows files that are less than or equal to 8 megabytes (MB) to be uploaded:
<httpRuntime maxRequestLength="8192" />
This is an exact quote from the Microsoft support page.
That's it, folks!
Update:
The maxRequestLength maximum value is 2097151, that is less than 2.1Gb. No file that exceeds this size can be uploaded through the default upload mechanism.
Comments
<p>Thanks for this post! It saved my day with bugs I can't figure out why and how it happened?</p>
AnonymousThanks for this post! It saved my day with bugs I can't figure out why and how it happened?
Anonymous<p>Hi,<br>I make the changes, but still am getting the same error...</p>
Ganesan NatarajanHi,<br>I make the changes, but still am getting the same error...
Ganesan Natarajan<p>Thank you very much.<br><br>I think my problem was ajax <a href="http://asp.net" rel="nofollow noopener" title="asp.net">asp.net</a><br>but never imagine can be size of viewstate.<br><br></p>
Allan OliveiraThank you very much.<br><br>I think my problem was ajax asp.net<br>but never imagine can be size of viewstate.<br><br>
Allan Oliveira<p>Thanks, Denil, for sharing the VB version of the code.</p>
Siderite<p>Vb Code:- <br><br> <br><br>WebConfig:<br><br> "<<br>httpRuntime maxRequestLength="8192" />"</p>
Denil Roy<p>Vb Code:- <br><br>Code window : <br> Protected Overrides ReadOnly Property PageStatePersister() As PageStatePersister<br> Get<br> 'return base.PageStatePersister;<br> Return New SessionPageStatePersister(Me)<br> End Get<br> End Property<br><br>WebConfig:<br><br> <br></p>
Denil RoyThanks, Denil, for sharing the VB version of the code.
SideriteVb Code:- <br><br> <br><br>WebConfig:<br><br> "<<br>httpRuntime maxRequestLength="8192" />"
Denil RoyVb Code:- <br><br>Code window : <br> Protected Overrides ReadOnly Property PageStatePersister() As PageStatePersister<br> Get<br> 'return base.PageStatePersister;<br> Return New SessionPageStatePersister(Me)<br> End Get<br> End Property<br><br>WebConfig:<br><br> <br>
Denil Roy<p>Thanks a lot,<br> I had a simple string in the viewstate, but I was experiencing your same problem and, btw, I solved the problem usign your suggestion.<br><br>I suggest you (if you can) to add some keywords like "unknwon reason", "post back page", "link button".<br>Eventually I found your post with this query on Saint Google: ""The connection was reset" without any reason aspx postback"<br><br>cheers<br>stmod</p>
AnonymousThanks a lot,<br> I had a simple string in the viewstate, but I was experiencing your same problem and, btw, I solved the problem usign your suggestion.<br><br>I suggest you (if you can) to add some keywords like "unknwon reason", "post back page", "link button".<br>Eventually I found your post with this query on Saint Google: ""The connection was reset" without any reason aspx postback"<br><br>cheers<br>stmod
Anonymous<p>Thank u.</p>
NiranjanThank u.
Niranjan<p>Thanks. I didn't even know what a PageStatePersister was till I read this article. Problem solved. My pigs are now ready to fly :)</p>
NeiliusThanks. I didn't even know what a PageStatePersister was till I read this article. Problem solved. My pigs are now ready to fly :)
Neilius<p>Life. Saver.</p>
Mr DigiwizLife. Saver.
Mr Digiwiz<p>Thank you very much friends it working for me</p>
veluThank you very much friends it working for me
velu<p>Tahnks a lot !<br>It helped me.<br><br>-Rameez Shaikh</p>
rameezshaikhTahnks a lot !<br>It helped me.<br><br>-Rameez Shaikh
rameezshaikh<p>Thanks a lot Siderite.It was very helpful...</p>
AnonymousThanks a lot Siderite.It was very helpful...
Anonymous<p>Have you reset IIS ?</p>
Siderite<p>I try all but sorry it didn't solve my problem.</p>
KashifHave you reset IIS ?
SideriteI try all but sorry it didn't solve my problem.
Kashif<p>As you can see in the documentation of the httpRuntime element (<a rel="nofollow">http://msdn.microsoft.com/en-us/library/e1f13641.aspx</a>), it is a tag that resides as a child tag of system.web. So something like this:<br><configuration><br> <system.web><br> <httpRuntime ...</p>
SideriteAs you can see in the documentation of the httpRuntime element (<a rel="nofollow">http://msdn.microsoft.com/en-us/library/e1f13641.aspx</a>), it is a tag that resides as a child tag of system.web. So something like this:<br><configuration><br> <system.web><br> <httpRuntime ...
Siderite<p>hello siderite.<br><br>this this very helpful but i can't find this tag in my web.config.<br><br>I am using <a href="http://vb.net" rel="nofollow noopener" title="vb.net">vb.net</a>..could you please help me. <br>if i need to paste it on web.config which section please?<br><br>really need your help.<br><br>thanks<br>andrik</p>
Andrik McVeanhello siderite.<br><br>this this very helpful but i can't find this tag in my web.config.<br><br>I am using vb.net..could you please help me. <br>if i need to paste it on web.config which section please?<br><br>really need your help.<br><br>thanks<br>andrik
Andrik McVean<p>Thanks.. Rabbits were a chuckle too.</p>
AnonymousThanks.. Rabbits were a chuckle too.
Anonymous<p>Hi, like what u said and sounds like it will solve my issue. I'm not a programmer, can u do a step by step as i don't know what an event viewer is and it looks like i have to go into event viewer to configure the Firefox file. I have Firefox 3.6 and I'm getting the "The connection was reset" error. Thanks for any help.<br><br>LVDS</p>
lovedoughnut64<p>This comment has been removed by the author.</p>
lovedoughnut64Hi, like what u said and sounds like it will solve my issue. I'm not a programmer, can u do a step by step as i don't know what an event viewer is and it looks like i have to go into event viewer to configure the Firefox file. I have Firefox 3.6 and I'm getting the "The connection was reset" error. Thanks for any help.<br><br>LVDS
lovedoughnut64This comment has been removed by the author.
lovedoughnut64<p>This saved my bacon. I installed SQL Express 2008 and when I would get to a certain point in my web app, I'd get that "connection was reset" error. It only happened on POST operations. These attributes in web.config solved the problem. I'm ecstatic since I can now use the nice features of SQL 2008's manager alongside <a href="http://asp.net" rel="nofollow noopener" title="asp.net">asp.net</a> on my computer. Thanks!!</p>
ajThis saved my bacon. I installed SQL Express 2008 and when I would get to a certain point in my web app, I'd get that "connection was reset" error. It only happened on POST operations. These attributes in web.config solved the problem. I'm ecstatic since I can now use the nice features of SQL 2008's manager alongside asp.net on my computer. Thanks!!
aj<p>Thanks for you post, but my problem get resolved uninstalling nod32.<br><br>It had some problems dealing with proxies.</p>
Rodrigo EspinosaThanks for you post, but my problem get resolved uninstalling nod32.<br><br>It had some problems dealing with proxies.
Rodrigo Espinosa<p>The httpRuntime tag in web.config uses maxRequestLength for setting a maximum acceptable request length and executionTimeout to set a maximum acceptable execution time.<br><br>Check out this <a href="http://msdn.microsoft.com/en-us/library/e1f13641.aspx" rel="nofollow noopener" title="http://msdn.microsoft.com/en-us/library/e1f13641.aspx">httpRuntime Element</a></p>
SideriteThe httpRuntime tag in web.config uses maxRequestLength for setting a maximum acceptable request length and executionTimeout to set a maximum acceptable execution time.<br><br>Check out this <a href="http://msdn.microsoft.com/en-us/library/e1f13641.aspx" rel="nofollow">httpRuntime Element</a>
Siderite<p>Siderite, nice post. Very helpful. Just wanted to check if my problem is related. I have an asynchronous request which gives me the same message if it takes a long time for the response. Ideally I would like the connection to live till the response is back rather than dropping dead. Have a look at the <a href="http://www.hamzaafaq.com/Sleep.aspx?sleeptime=10000" rel="nofollow noopener" title="http://www.hamzaafaq.com/Sleep.aspx?sleeptime=10000">test page</a> I've put up. If you change the sleeptime value to a bit higher (<a href="http://www.hamzaafaq.com/Sleep.aspx?sleeptime=40000" rel="nofollow noopener" title="http://www.hamzaafaq.com/Sleep.aspx?sleeptime=40000">example</a>), the connection just drops. Any solutions?</p>
HamzaSiderite, nice post. Very helpful. Just wanted to check if my problem is related. I have an asynchronous request which gives me the same message if it takes a long time for the response. Ideally I would like the connection to live till the response is back rather than dropping dead. Have a look at the <a href="http://www.hamzaafaq.com/Sleep.aspx?sleeptime=10000" rel="nofollow">test page</a> I've put up. If you change the sleeptime value to a bit higher (<a href="http://www.hamzaafaq.com/Sleep.aspx?sleeptime=40000" rel="nofollow">example</a>), the connection just drops. Any solutions?
Hamza<p>Thanks for posting this. The maxRequestLength was the fix I needed because I was allowing large files to be uploaded via a file input control.</p>
slade73Thanks for posting this. The maxRequestLength was the fix I needed because I was allowing large files to be uploaded via a file input control.
slade73<p>Thank you for your post.</p>
AnonymousThank you for your post.
Anonymous<p>Thank you very much. This one had me stumped. I had often wondered about that ViewState, and if it ever filled up.</p>
the TaleCrafterThank you very much. This one had me stumped. I had often wondered about that ViewState, and if it ever filled up.
Anonymous<p>You are most welcome! What queries did you use to search the web? Maybe I can add some of the words to the post so that people find it faster.</p>
SideriteYou are most welcome! What queries did you use to search the web? Maybe I can add some of the words to the post so that people find it faster.
Siderite<p>This is Very Much Helpful Post (Error Code : 12031)after an 7Hrs of Search in Web atlast got this one.It Solved my Problem<br> Thanx a LOT "Siderite" <br><br>Regards<br>SURESH RAJ <br>MCST, MCPD</p>
SureshThis is Very Much Helpful Post (Error Code : 12031)after an 7Hrs of Search in Web atlast got this one.It Solved my Problem<br> Thanx a LOT "Siderite" <br><br>Regards<br>SURESH RAJ <br>MCST, MCPD
Suresh<p>Siderite, Thanks too much for sharing your experience. It helped me a lot.</p>
AnonymousSiderite, Thanks too much for sharing your experience. It helped me a lot.
Anonymous