EPiServer CMO crashes when saving a test

Vote:
 

EPiServer CMO crashes when I'm saving a test. Here is a little snippet:

[SerializationException: Type 'EPiServer.Cmo.UI.Units.PageNotification' in Assembly 'EPiServer.Cmo.UI, Version=7.6.1.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7' is not marked as serializable.]

Here is the full message:

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.

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.

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 'EPiServer.Cmo.UI.Units.PageNotification' in Assembly 'EPiServer.Cmo.UI, Version=7.6.1.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7' is not marked as serializable.]
   System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) +14136012
   System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) +306
   System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() +188
   System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, SerializationBinder binder) +250
   System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteArray(WriteObjectInfo objectInfo, NameInfo memberNameInfo, WriteObjectInfo memberObjectInfo) +311
   System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) +711
   System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +566
   System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) +208
   System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +2262

[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) +2399
   System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object value, BinaryWriter writer) +47
   System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter writer) +762
   System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData item, Stream stream) +297
   System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData item, Int32 initialStreamSize, Byte[]& buf, Int32& length, Boolean compressionEnabled) +81
   System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) +776
   System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +906
   System.Web.SessionState.SessionStateModule.OnEndRequest(Object source, EventArgs eventArgs) +171
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +142
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +92

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.57.0

Is there any fix for this?

#131294
Jul 20, 2015 10:02
Vote:
 

It looks like your website is running with StateServer, SQLServer or Custom session state mode.

The easiest workaround would be using In-Proc session state mode, if it is possible in your case:

<configuration>
  <system.web>
    <sessionState mode="InProc " />
  </system.web>
</configuration>

I have filed a bug.

#131389
Jul 22, 2015 20:06