So intermittently I am getting an Exception written out to my server's Event Logs from something bad happening in WCF.
This Exception happens at the same time as a "System.TimeoutException" for an async callback to the client. I guess the serialization problem causes the timeout issue, because the calls are not all that long.
The client side sometimes logs a stacktrace including "The server did not provide a meaningful reply" when it gets its async answer back from the service.
So the "bin" folder for my web service contains a copy of My.Org.Core DLL with version 2.0.0.0 however the stacktrace refers to version 1.8.0.0! I searched my entire solution for any mention of this old 1.8.0.0 and it cannot be found! Please help.
Here is the serialization problem:
An unhandled exception occurred and the process was terminated.
Application ID: DefaultDomain
Process ID: xxxx
Exception: System.Runtime.Serialization.SerializationException
Message: Unable to find assembly 'My.Org.Core, Version=1.8.0.0, Culture=neutral, PublicKeyToken=null'.
StackTrace:
at System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Remoting.Channels.CrossAppDomainSerializer.DeserializeObject(MemoryStream stm)
at System.AppDomain.Deserialize(Byte[] blob)
at System.AppDomain.UnmarshalObject(Byte[] blob)