A couple of days ago a colleague called me because the session state kept disapearing in his ASP.NET application.
He was running the application in a virtual machine and had a nagging feeling that this was the cause of the problem.
A few basic questions later it struck me that he probably had not changed the memory settings of his virtual machine.
It was still running on the default 128 MB so every time he reloaded the offending page the ASP.NET application pool was restarted because of memory constraints.
So if you are running server software in a virtual environment; remember to allocate enough memory to keep it going.