- Home
- Forum
- ASP.NET Web Forms (Classic)
- SerializationException Relating to Syncfusion.XlsIO.Base DLL
SerializationException Relating to Syncfusion.XlsIO.Base DLL
Hi,
I am working on an ASP.NET web app using Visual Studio 2008 and Syncfusion build 5.102.0.51.
Things are fine in my development environment. Things are also good if the web app is deployed in Debug configuration. However, when it is deployed in Release mode, SerializationExceptions appear intermittently, breaking other functionality.
In the Windows event log, the following error can be seen:
"An unhandled exception occurred and the process was terminated.
Application ID: DefaultDomain
Process ID: 3972
Exception: System.Runtime.Serialization.SerializationException
Message: Unable to find assembly 'Syncfusion.XlsIO.Base, Version=5.102.0.51, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89'.
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.ObjectMap.Create(String name, 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.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
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)
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp."
Using FUSLOGVW.exe (i.e., Assembly Binding Log Viewer), I can see the problem is that IIS attempts to find Syncfusion.XlsIO.Base in directory C:\windows\system32\inetsrv. It refuses to look in the bin folder of the web app, where the DLL is actually located.
Does anyone know what the problem is?
Thanks,
Calvin
I am working on an ASP.NET web app using Visual Studio 2008 and Syncfusion build 5.102.0.51.
Things are fine in my development environment. Things are also good if the web app is deployed in Debug configuration. However, when it is deployed in Release mode, SerializationExceptions appear intermittently, breaking other functionality.
In the Windows event log, the following error can be seen:
"An unhandled exception occurred and the process was terminated.
Application ID: DefaultDomain
Process ID: 3972
Exception: System.Runtime.Serialization.SerializationException
Message: Unable to find assembly 'Syncfusion.XlsIO.Base, Version=5.102.0.51, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89'.
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.ObjectMap.Create(String name, 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.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
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)
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp."
Using FUSLOGVW.exe (i.e., Assembly Binding Log Viewer), I can see the problem is that IIS attempts to find Syncfusion.XlsIO.Base in directory C:\windows\system32\inetsrv. It refuses to look in the bin folder of the web app, where the DLL is actually located.
Does anyone know what the problem is?
Thanks,
Calvin
SIGN IN To post a reply.
4 Replies
CN
Calvin Nguyen
March 19, 2010 12:47 AM UTC
I should also mention...
Just to experiment, I copied all Syncfusion DLLs to the folder C:\windows\system32\inetsrv on the web server. To my surprise, when the web app runs, a different but equally inexplicable problem rears its head.
"An unhandled exception occurred and the process was terminated.
Application ID: DefaultDomain
Process ID: 1604
Exception: System.Runtime.Serialization.SerializationException
Message: The constructor to deserialize an object of type 'Syncfusion.XlsIO.ExcelWorkbookNotSavedException' was not found.
StackTrace: at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context)
at System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder)
at System.Runtime.Serialization.ObjectManager.DoFixups()
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)
InnerException: System.Runtime.Serialization.SerializationException
Message: The constructor to deserialize an object of type 'Syncfusion.XlsIO.ExcelWorkbookNotSavedException' was not found.
StackTrace: at System.Runtime.Serialization.ObjectManager.GetConstructor(Type t, Type[] ctorParams)
at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context)
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp."
Just to experiment, I copied all Syncfusion DLLs to the folder C:\windows\system32\inetsrv on the web server. To my surprise, when the web app runs, a different but equally inexplicable problem rears its head.
"An unhandled exception occurred and the process was terminated.
Application ID: DefaultDomain
Process ID: 1604
Exception: System.Runtime.Serialization.SerializationException
Message: The constructor to deserialize an object of type 'Syncfusion.XlsIO.ExcelWorkbookNotSavedException' was not found.
StackTrace: at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context)
at System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder)
at System.Runtime.Serialization.ObjectManager.DoFixups()
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)
InnerException: System.Runtime.Serialization.SerializationException
Message: The constructor to deserialize an object of type 'Syncfusion.XlsIO.ExcelWorkbookNotSavedException' was not found.
StackTrace: at System.Runtime.Serialization.ObjectManager.GetConstructor(Type t, Type[] ctorParams)
at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context)
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp."
GM
Geetha M
Syncfusion Team
March 19, 2010 04:47 AM UTC
Hi Calvin,
Thank you for your interest in Syncfusion products.
I am afraid that I am not able to reproduce the problem. I created a simple sample and it worked for me. Could you please modify it and send back to us so that we can recreate and find the cause of the problem?
http://help.syncfusion.com/samples/XlsIO.Web/5.1.0.51/F93546/F93546.zip
Regards,
Geetha
Thank you for your interest in Syncfusion products.
I am afraid that I am not able to reproduce the problem. I created a simple sample and it worked for me. Could you please modify it and send back to us so that we can recreate and find the cause of the problem?
http://help.syncfusion.com/samples/XlsIO.Web/5.1.0.51/F93546/F93546.zip
Regards,
Geetha
CN
Calvin Nguyen
March 19, 2010 05:27 PM UTC
Hi Geetha,
Thank you for providing the sample project.
I have two questions:
1) Can I ask why you placed Syncfusion.XlsIO.Base in the GAC and not just a regular folder?
2) Do you know what this error means or whether it provides any clues relating to my problem? "The constructor to deserialize an object of type 'Syncfusion.XlsIO.ExcelWorkbookNotSavedException' was not found."
Thanks,
Calvin
Thank you for providing the sample project.
I have two questions:
1) Can I ask why you placed Syncfusion.XlsIO.Base in the GAC and not just a regular folder?
2) Do you know what this error means or whether it provides any clues relating to my problem? "The constructor to deserialize an object of type 'Syncfusion.XlsIO.ExcelWorkbookNotSavedException' was not found."
Thanks,
Calvin
GM
Geetha M
Syncfusion Team
March 24, 2010 09:09 AM UTC
Hi Calvin,
Sorry for the delay in responding to you.
1) The assemblies were placed inside the bin folder.
2) This error seems to occur if workbook / excelEngine is not properly disposed. Could you please use the following code?
Regards,
Geetha
Sorry for the delay in responding to you.
1) The assemblies were placed inside the bin folder.
2) This error seems to occur if workbook / excelEngine is not properly disposed. Could you please use the following code?
workbook.Close();
excelEngine.ThrowNotSavedOnDestroy = false;
excelEngine.Dispose();
Regards,
Geetha
SIGN IN To post a reply.
- 4 Replies
- 2 Participants
-
CN Calvin Nguyen
- Mar 19, 2010 12:43 AM UTC
- Mar 24, 2010 09:09 AM UTC