I got this error prety long ago till now we managed to find the root cause why this error happens though i cannot find any article on google that clearly explains why.
I got the answer from Microsoft Support staff.
We have one windows 2003 Service Pack 2 server as application server in Production.
The rest of the web and app servers are on windows 2003 Service Pack 1.
The error:
System.Web.HttpUnhandledException: Exception of type System.Web.HttpUnhandledException was thrown. ---> System.Runtime.Serialization.SerializationException: Type missing for member of type Object '_ContextID'. Server stack trace: at System.Runtime.Serialization.Formatters.Soap.ObjectReader.ParseMember(ParseRecord pr) at System.Runtime.Serialization.Formatters.Soap.ObjectReader.Parse(ParseRecord pr) at System.Runtime.Serialization.Formatters.Soap.SoapHandler.EndElement(String prefix, String name, String urn)
Reason why it happen:
According to http://support.microsoft.com/default.aspx?scid=kb;EN-US;944925
There is a file in c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
system.runtime.serialization.formatters.soap.dll
When it was on win2k3 SP 1,
system.runtime.serialization.formatters.soap.dll
version is 1.1.4322.2300
128 KB (131,072 bytes)
When it was on win2k3 SP 2,
system.runtime.serialization.formatters.soap.dll, version is 1.1.4322.2306, 132 kb
So the differences of the version of this file results in the Dot net CLR unable to serialise and deserialise properly as the app and web servers are using different version of dll after windows 2003 service packs after the load balancer assign the specific web server (win2k3 SP 1) to specific app server (win2k3 SP2).
The solution is to maintain the same version of this dll throughout the servers which use the serialisation feature in Dot Net Remoting.
Now my infrastructure guy keeps quiet cos he know that his aggressive system patching has crippled the web application because of this dll, since he has no idea what will Microsoft patch after the Service Pack 2 was applied on the server. Lolz