|
Key
This line was removed.
This word was removed. This word was added.
This line was added.
|
Changes (5)
View Page HistoryThis issue occurs when you are storing session state in SQL Server and those objects stored in session are serialized. You will notice that most pages within ECF Commerce Manager render fine, but when you go to *Order Management > Purchase Orders > All*, you may encounter a Server Error that looks similar to this:
{quote}{*}Server Error in '/' Application.*
----
*{_}Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode._*
*{_}Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode._*
*Description:* An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
*Exception Details:* System.Web.HttpException: Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.
\\ {quote}
The error appears to be that the PurchaseOrder is not marked as serializable and some other issues related to this. Unfortunately, setting the PurchaseOrder class as serializable does not fix the problem alone.
The error appears to be that the PurchaseOrder is not marked as serializable and some other issues related to this. Unfortunately, setting the PurchaseOrder class as serializable does not fix the problem alone.
*Source Error:*
| An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
*Stack Trace:*
| \\ \\
\[SerializationException: Type 'Mediachase.Commerce.Orders.PurchaseOrder' in Assembly 'Mediachase.Commerce, Version=5.1.3764.19440, Culture=neutral, PublicKeyToken=6e58b501b34abce3' is not marked as serializable.\]\\
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) \+7634010\\
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) \+51\\
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header\[\] inHeaders, \__BinaryWriter serWriter, Boolean fCheck) \+410\\
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header\[\] headers, Boolean fCheck) \+134\\
System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) \+1577\\ \\
\[HttpException (0x80004005): Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted.. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.\]\\
System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) \+1662\\
System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object value, BinaryWriter writer) \+34\\
System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter writer) \+606\\
System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData item, Stream stream) \+239\\
System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData item, Int32 initialStreamSize, Byte\[\]& buf, Int32& length) \+72\\
System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) \+116\\
System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) \+560\\
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() \+68\\
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) \+75 |
\\
----
*Version Information:* Microsoft ..NET Framework Version:2.0.50727.4206; ASP.NET Version:2.0.50727.4209
| An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
*Stack Trace:*
| \\ \\
\[SerializationException: Type 'Mediachase.Commerce.Orders.PurchaseOrder' in Assembly 'Mediachase.Commerce, Version=5.1.3764.19440, Culture=neutral, PublicKeyToken=6e58b501b34abce3' is not marked as serializable.\]\\
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) \+7634010\\
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) \+51\\
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header\[\] inHeaders, \__BinaryWriter serWriter, Boolean fCheck) \+410\\
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header\[\] headers, Boolean fCheck) \+134\\
System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) \+1577\\ \\
\[HttpException (0x80004005): Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted.. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.\]\\
System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) \+1662\\
System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object value, BinaryWriter writer) \+34\\
System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter writer) \+606\\
System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData item, Stream stream) \+239\\
System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData item, Int32 initialStreamSize, Byte\[\]& buf, Int32& length) \+72\\
System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) \+116\\
System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) \+560\\
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() \+68\\
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) \+75 |
\\
----
*Version Information:* Microsoft ..NET Framework Version:2.0.50727.4206; ASP.NET Version:2.0.50727.4209
One possible workaround is to create a stand-alone commerce manager instance that points to the load balanced environment databases and doesn't use SQL session state. Directions for setting this up from the full source can be found at [Full Source Code Manual Installation.|ecf51installanddeploy:Full Source Code Manual Installation]