I'm trying to store session state in SQL instead of InProc in our nopcommerce 1.9 install. When I make the requisite changes to the web.config I get this error:

> 
> 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
>  'NopSolutions.NopCommerce.BusinessLogic.Categories.Category' in
>  Assembly 'Nop.BusinessLogic, Version=1.9.0.0, Culture=neutral,
>  PublicKeyToken=null' is not marked as serializable.]  
> 
>  System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType
>  type) +9449041  
> 
>  System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type
>  type, StreamingContext context) +247  
> 
>  System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
>  +160 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type
>  objectType, ISurrogateSelector surrogateSelector, StreamingContext
>  context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter
>  converter, SerializationBinder binder) +371  
> 
>  System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteArray(WriteObjectInfo
>  objectInfo, NameInfo memberNameInfo, WriteObjectInfo memberObjectInfo)
>  +205 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo
>  objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) +651  
> 
>  System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object
>  graph, Header[] inHeaders, \_\_BinaryWriter serWriter, Boolean fCheck)
>  +444 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream
>  serializationStream, Object graph, Header[] headers, Boolean fCheck)
>  +133 System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +1762
> 
> 
> [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) +1847  
> 
>  System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object
>  value, BinaryWriter writer) +34  
> 
>  System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter
>  writer) +638  
> 
>  System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData
>  item, Stream stream) +244  
> 
>  System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData
>  item, Int32 initialStreamSize, Byte[]& buf, Int32& length, Boolean
>  compressionEnabled) +67  
> 
>  System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext
>  context, String id, SessionStateStoreData item, Object lockId, Boolean
>  newItem) +140  
> 
>  System.Web.SessionState.SessionStateModule.OnReleaseState(Object
>  source, EventArgs eventArgs) +807  
> 
>  System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
>  +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
> 
> 
> Version Information: Microsoft .NET Framework Version:4.0.30319;
>  ASP.NET Version:4.0.30319.272
> 
> 
> 

Somebody PLEASE tell me I don't need to serialize every object in Nopcommerce to do this!