title: Unable to serialize the session state. Part 2
body: <p>After solving yesterdays ( <a href="https://stackoverflow.com/questions/5889240/unable-to-serialize-the-session-state">Unable to serialize the session state</a> ) error, I am now encountering this one (at the same page).</p>
  <blockquote>
  <p>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.</p>
  <p>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.</p>
  </blockquote>
  <p>Source Error:</p>
  <blockquote>
  <p>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.</p>
  </blockquote>
  <p>Stack Trace:</p>
  <blockquote>
  <p>[SerializationException: Type
  'System.Data.Linq.ChangeTracker+StandardChangeTracker' in Assembly
  'System.Data.Linq, Version=4.0.0.0, Culture=neutral,
  PublicKeyToken=b77a5c561934e089' is not marked as serializable.]
  System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType
  type) +9452985
  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(Object
  obj, ISurrogateSelector surrogateSelector, StreamingContext context,
  SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter,
  ObjectWriter objectWriter, SerializationBinder binder) +218
  System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo
  objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) +388
  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) +1708</p>
  <p>[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) +1793
  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[]&amp; buf, Int32&amp; length, Boolean
  compressionEnabled) +67
  System.Web.SessionState.OutOfProcSessionStateStore.SetAndReleaseItemExclusive(HttpContext
  context, String id, SessionStateStoreData item, Object lockId, Boolean
  newItem) +114
  System.Web.SessionState.SessionStateModule.OnReleaseState(Object
  source, EventArgs eventArgs) +807
  System.Web.SessionState.SessionStateModule.OnEndRequest(Object source,
  EventArgs eventArgs) +184
  System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
  +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +75
  Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1</p>
  </blockquote>
  <p>I have now put a serializeble type in my LINQ Database file.</p>
  <pre><code>[global::System.Data.Linq.Mapping.TableAttribute(Name=&quot;dbo.Gebruiker&quot;)]
  [Serializable()]
  public partial class Gebruiker { }
  
  public partial class Gebruiker : INotifyPropertyChanging, INotifyPropertyChanged
  {
  
      private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
      
      private string _GebruikerID;
      
      private string _GebruikerVoornaam;
      
      private string _GebruikerNaam;
      
      private string _GebruikerEmail;
      
      private string _GebruikerWachtwoord;
      
      private string _GebruikerPermissies;
      
      //...
  }
  </code></pre>