Serialization Error

Discussion in 'ASP .Net' started by Maximus, Jan 19, 2004.

  1. Maximus

    Maximus Guest

    Hi Everyone,

    I was using Inprocess session objects, but incase of aspnet process
    crashes the session objects were lost as a result I decided to shift to
    out of porocess session objects. For this i had to serialize the
    objects. While doing that I made the classes serializable whose objects
    I store in sessions. However, when I run the application I get the
    following error.






    Unable to serialize the session state. Please note that non-serializable
    objects or MarshalByRef objects are not permitted when session state
    mode is 'StateServer' or 'SQLServer'.
    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. Please note that non-serializable objects or MarshalByRef
    objects are not permitted when session state mode is 'StateServer' or
    'SQLServer'.

    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: The type ASP.default_aspx in Assembly h5ahqjmx,
    Version=0.0.0.0, Culture=neutral, PublicKeyToken=null is not marked as
    serializable.]

    System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType
    type, Boolean excludeNonSerializable) +853

    System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type
    type, StreamingContext context) +300

    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
    +103

    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object
    obj, ISurrogateSelector surrogateSelector, StreamingContext context,
    SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +493

    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object
    obj, ISurrogateSelector surrogateSelector, StreamingContext context,
    SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +48

    System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo
    objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) +515

    System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object
    graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +738

    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream
    serializationStream, Object graph, Header[] headers, Boolean fCheck) +136

    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream
    serializationStream, Object graph) +13
    System.Web.Util.AltSerialization.WriteValueToStream(Object value,
    BinaryWriter writer)

    [HttpException (0x80004005): Unable to serialize the session state.
    Please note that non-serializable objects or MarshalByRef objects are
    not permitted when session state mode is 'StateServer' or 'SQLServer'.]
    System.Web.Util.AltSerialization.WriteValueToStream(Object value,
    BinaryWriter writer)
    System.Web.SessionState.SessionDictionary.Serialize(BinaryWriter writer)

    System.Web.SessionState.StateClientManager.Serialize(SessionStateItem
    item, Stream stream)

    System.Web.SessionState.OutOfProcStateClientManager.System.Web.SessionState.IStateClientManager.Set(String
    id, SessionStateItem item, Boolean inStorage)
    System.Web.SessionState.SessionStateModule.OnReleaseState(Object
    source, EventArgs eventArgs)

    System.Web.SyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()
    +60
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
    completedSynchronously) +87




    I'll appreciate if anybody could help me with this.

    Thanks.
     
    Maximus, Jan 19, 2004
    #1
    1. Advertising

  2. You can serialize an object of a class if the class and all its members (the
    object graph) are themselves serializable. For Session state objects they
    also should not be derived from MarshalByRefObject class. Check if all the
    members themselves are serializable and also that none of them are
    MarshalByRefObjects. If there are any, you can mark them with a
    NonSerialized attribute, so that the formatter does not serialize these
    (But, ofcource the state of the object in this case will be incomplete).

    --
    HTH,
    Manoj G [.NET MVP]
    Site: http://www15.brinkster.com/manoj4dotnet
    Blog: http://msmvps.com/manoj/

    "Maximus" <> wrote in message
    news:...
    > Hi Everyone,
    >
    > I was using Inprocess session objects, but incase of aspnet process
    > crashes the session objects were lost as a result I decided to shift to
    > out of porocess session objects. For this i had to serialize the
    > objects. While doing that I made the classes serializable whose objects
    > I store in sessions. However, when I run the application I get the
    > following error.
    >
    >
    >
    >
    >
    >
    > Unable to serialize the session state. Please note that non-serializable
    > objects or MarshalByRef objects are not permitted when session state
    > mode is 'StateServer' or 'SQLServer'.
    > 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. Please note that non-serializable objects or MarshalByRef
    > objects are not permitted when session state mode is 'StateServer' or
    > 'SQLServer'.
    >
    > 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: The type ASP.default_aspx in Assembly h5ahqjmx,
    > Version=0.0.0.0, Culture=neutral, PublicKeyToken=null is not marked as
    > serializable.]
    >
    >

    System.Runtime.Serialization.FormatterServices.InternalGetSerializableMember
    s(RuntimeType
    > type, Boolean excludeNonSerializable) +853
    >
    > System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type
    > type, StreamingContext context) +300
    >
    >

    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInf
    o()
    > +103
    >
    >

    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize
    (Object
    > obj, ISurrogateSelector surrogateSelector, StreamingContext context,
    > SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +493
    >
    >

    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Obj
    ect
    > obj, ISurrogateSelector surrogateSelector, StreamingContext context,
    > SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +48
    >
    >

    System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjec
    tInfo
    > objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) +515
    >
    >

    System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object
    > graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +738
    >
    >

    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Str
    eam
    > serializationStream, Object graph, Header[] headers, Boolean fCheck) +136
    >
    >

    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Str
    eam
    > serializationStream, Object graph) +13
    > System.Web.Util.AltSerialization.WriteValueToStream(Object value,
    > BinaryWriter writer)
    >
    > [HttpException (0x80004005): Unable to serialize the session state.
    > Please note that non-serializable objects or MarshalByRef objects are
    > not permitted when session state mode is 'StateServer' or 'SQLServer'.]
    > System.Web.Util.AltSerialization.WriteValueToStream(Object value,
    > BinaryWriter writer)
    > System.Web.SessionState.SessionDictionary.Serialize(BinaryWriter

    writer)
    >
    > System.Web.SessionState.StateClientManager.Serialize(SessionStateItem
    > item, Stream stream)
    >
    >

    System.Web.SessionState.OutOfProcStateClientManager.System.Web.SessionState.
    IStateClientManager.Set(String
    > id, SessionStateItem item, Boolean inStorage)
    > System.Web.SessionState.SessionStateModule.OnReleaseState(Object
    > source, EventArgs eventArgs)
    >
    >

    System.Web.SyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.
    Execute()
    > +60
    > System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
    > completedSynchronously) +87
    >
    >
    >
    >
    > I'll appreciate if anybody could help me with this.
    >
    > Thanks.
    >
     
    Manoj G [MVP], Jan 20, 2004
    #2
    1. Advertising

  3. Maximus

    Maximus Guest

    Hi Manoj,

    Thanks for the reply, I tried that and have marked all the objects which
    I could. In most cases it would tell me which object it could not
    serialize. But here it is saying it cannot serialize 'ASP.default_aspx
    in Assembly 9iq31h5o'.
    What I dont understand is why is it trying to serialize the default.aspx
    page and also where is this assmebly Assembly 9iq31h5o created.

    Any help will be appreciated.



    Manoj G [MVP] wrote:

    > You can serialize an object of a class if the class and all its members (the
    > object graph) are themselves serializable. For Session state objects they
    > also should not be derived from MarshalByRefObject class. Check if all the
    > members themselves are serializable and also that none of them are
    > MarshalByRefObjects. If there are any, you can mark them with a
    > NonSerialized attribute, so that the formatter does not serialize these
    > (But, ofcource the state of the object in this case will be incomplete).
    >
    > --
    > HTH,
    > Manoj G [.NET MVP]
    > Site: http://www15.brinkster.com/manoj4dotnet
    > Blog: http://msmvps.com/manoj/
    >
    > "Maximus" <> wrote in message
    > news:...
    >
    >>Hi Everyone,
    >>
    >>I was using Inprocess session objects, but incase of aspnet process
    >>crashes the session objects were lost as a result I decided to shift to
    >>out of porocess session objects. For this i had to serialize the
    >>objects. While doing that I made the classes serializable whose objects
    >>I store in sessions. However, when I run the application I get the
    >>following error.
    >>
    >>
    >>
    >>
    >>
    >>
    >>Unable to serialize the session state. Please note that non-serializable
    >>objects or MarshalByRef objects are not permitted when session state
    >>mode is 'StateServer' or 'SQLServer'.
    >>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. Please note that non-serializable objects or MarshalByRef
    >>objects are not permitted when session state mode is 'StateServer' or
    >>'SQLServer'.
    >>
    >>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: The type ASP.default_aspx in Assembly h5ahqjmx,
    >>Version=0.0.0.0, Culture=neutral, PublicKeyToken=null is not marked as
    >>serializable.]
    >>
    >>

    >
    > System.Runtime.Serialization.FormatterServices.InternalGetSerializableMember
    > s(RuntimeType
    >
    >>type, Boolean excludeNonSerializable) +853
    >>
    >>System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type
    >>type, StreamingContext context) +300
    >>
    >>

    >
    > System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInf
    > o()
    >
    >>+103
    >>
    >>

    >
    > System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize
    > (Object
    >
    >>obj, ISurrogateSelector surrogateSelector, StreamingContext context,
    >>SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +493
    >>
    >>

    >
    > System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Obj
    > ect
    >
    >>obj, ISurrogateSelector surrogateSelector, StreamingContext context,
    >>SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +48
    >>
    >>

    >
    > System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjec
    > tInfo
    >
    >>objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) +515
    >>
    >>

    >
    > System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object
    >
    >>graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +738
    >>
    >>

    >
    > System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Str
    > eam
    >
    >>serializationStream, Object graph, Header[] headers, Boolean fCheck) +136
    >>
    >>

    >
    > System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Str
    > eam


    >>serializationStream, Object graph) +13
    >> System.Web.Util.AltSerialization.WriteValueToStream(Object value,
    >>BinaryWriter writer)
    >>
    >>[HttpException (0x80004005): Unable to serialize the session state.
    >>Please note that non-serializable objects or MarshalByRef objects are
    >>not permitted when session state mode is 'StateServer' or 'SQLServer'.]
    >> System.Web.Util.AltSerialization.WriteValueToStream(Object value,
    >>BinaryWriter writer)
    >> System.Web.SessionState.SessionDictionary.Serialize(BinaryWriter

    >
    > writer)
    >
    >>System.Web.SessionState.StateClientManager.Serialize(SessionStateItem
    >>item, Stream stream)
    >>
    >>

    >
    > System.Web.SessionState.OutOfProcStateClientManager.System.Web.SessionState.
    > IStateClientManager.Set(String
    >
    >>id, SessionStateItem item, Boolean inStorage)
    >> System.Web.SessionState.SessionStateModule.OnReleaseState(Object
    >>source, EventArgs eventArgs)
    >>
    >>

    >
    > System.Web.SyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.
    > Execute()
    >
    >>+60
    >> System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
    >>completedSynchronously) +87
    >>
    >>
    >>
    >>
    >>I'll appreciate if anybody could help me with this.
    >>
    >>Thanks.
    >>

    >
    >
    >
     
    Maximus, Jan 26, 2004
    #3
  4. Hi!

    Thats a temporary assembly which the ASP.NET runtime creates for you when
    compiling the page before executing it.

    That said, ensure that any classes instantiated within your page are also
    serializable. The object graph, which Manoj referred to in his reply, not
    only includes a serializable class's members, but also any objects
    referenced by the class's objects.

    --
    Regards,
    Kumar Gaurav Khanna
    -----------------------------------------------------------------
    Microsoft MVP - C#/.NET, MCSE Windows 2000/NT4, MCP+I
    WinToolZone - Spelunking Microsoft Technologies
    http://www.wintoolzone.com/
    OpSupport - Spelunking Rotor
    http://opsupport.sscli.net/
    Bangalore .NET Users' Group
    http://groups.msn.com/bdotnet/
    "Maximus" <> wrote in message
    news:...
    > Hi Manoj,
    >
    > Thanks for the reply, I tried that and have marked all the objects which
    > I could. In most cases it would tell me which object it could not
    > serialize. But here it is saying it cannot serialize 'ASP.default_aspx
    > in Assembly 9iq31h5o'.
    > What I dont understand is why is it trying to serialize the default.aspx
    > page and also where is this assmebly Assembly 9iq31h5o created.
    >
    > Any help will be appreciated.
    >
    >
    >
    > Manoj G [MVP] wrote:
    >
    > > You can serialize an object of a class if the class and all its members

    (the
    > > object graph) are themselves serializable. For Session state objects

    they
    > > also should not be derived from MarshalByRefObject class. Check if all

    the
    > > members themselves are serializable and also that none of them are
    > > MarshalByRefObjects. If there are any, you can mark them with a
    > > NonSerialized attribute, so that the formatter does not serialize these
    > > (But, ofcource the state of the object in this case will be incomplete).
    > >
    > > --
    > > HTH,
    > > Manoj G [.NET MVP]
    > > Site: http://www15.brinkster.com/manoj4dotnet
    > > Blog: http://msmvps.com/manoj/
    > >
    > > "Maximus" <> wrote in message
    > > news:...
    > >
    > >>Hi Everyone,
    > >>
    > >>I was using Inprocess session objects, but incase of aspnet process
    > >>crashes the session objects were lost as a result I decided to shift to
    > >>out of porocess session objects. For this i had to serialize the
    > >>objects. While doing that I made the classes serializable whose objects
    > >>I store in sessions. However, when I run the application I get the
    > >>following error.
    > >>
    > >>
    > >>
    > >>
    > >>
    > >>
    > >>Unable to serialize the session state. Please note that non-serializable
    > >>objects or MarshalByRef objects are not permitted when session state
    > >>mode is 'StateServer' or 'SQLServer'.
    > >>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. Please note that non-serializable objects or MarshalByRef
    > >>objects are not permitted when session state mode is 'StateServer' or
    > >>'SQLServer'.
    > >>
    > >>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: The type ASP.default_aspx in Assembly h5ahqjmx,
    > >>Version=0.0.0.0, Culture=neutral, PublicKeyToken=null is not marked as
    > >>serializable.]
    > >>
    > >>

    > >
    > >

    System.Runtime.Serialization.FormatterServices.InternalGetSerializableMember
    > > s(RuntimeType
    > >
    > >>type, Boolean excludeNonSerializable) +853
    > >>

    >
    >>System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type
    > >>type, StreamingContext context) +300
    > >>
    > >>

    > >
    > >

    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInf
    > > o()
    > >
    > >>+103
    > >>
    > >>

    > >
    > >

    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize
    > > (Object
    > >
    > >>obj, ISurrogateSelector surrogateSelector, StreamingContext context,
    > >>SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +493
    > >>
    > >>

    > >
    > >

    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Obj
    > > ect
    > >
    > >>obj, ISurrogateSelector surrogateSelector, StreamingContext context,
    > >>SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +48
    > >>
    > >>

    > >
    > >

    System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjec
    > > tInfo
    > >
    > >>objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) +515
    > >>
    > >>

    > >
    > >

    System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object
    > >
    > >>graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)

    +738
    > >>
    > >>

    > >
    > >

    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Str
    > > eam
    > >
    > >>serializationStream, Object graph, Header[] headers, Boolean fCheck)

    +136
    > >>
    > >>

    > >
    > >

    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Str
    > > eam

    >
    > >>serializationStream, Object graph) +13
    > >> System.Web.Util.AltSerialization.WriteValueToStream(Object value,
    > >>BinaryWriter writer)
    > >>
    > >>[HttpException (0x80004005): Unable to serialize the session state.
    > >>Please note that non-serializable objects or MarshalByRef objects are
    > >>not permitted when session state mode is 'StateServer' or 'SQLServer'.]
    > >> System.Web.Util.AltSerialization.WriteValueToStream(Object value,
    > >>BinaryWriter writer)
    > >> System.Web.SessionState.SessionDictionary.Serialize(BinaryWriter

    > >
    > > writer)
    > >
    > >>System.Web.SessionState.StateClientManager.Serialize(SessionStateItem
    > >>item, Stream stream)
    > >>
    > >>

    > >
    > >

    System.Web.SessionState.OutOfProcStateClientManager.System.Web.SessionState.
    > > IStateClientManager.Set(String
    > >
    > >>id, SessionStateItem item, Boolean inStorage)
    > >> System.Web.SessionState.SessionStateModule.OnReleaseState(Object
    > >>source, EventArgs eventArgs)
    > >>
    > >>

    > >
    > >

    System.Web.SyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.
    > > Execute()
    > >
    > >>+60
    > >> System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
    > >>completedSynchronously) +87
    > >>
    > >>
    > >>
    > >>
    > >>I'll appreciate if anybody could help me with this.
    > >>
    > >>Thanks.
    > >>

    > >
    > >
    > >

    >
     
    Gaurav Khanna [C# MVP], Jan 28, 2004
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Maximus

    Serialization error

    Maximus, Jan 19, 2004, in forum: ASP .Net
    Replies:
    2
    Views:
    3,424
    Maximus
    Jan 26, 2004
  2. Replies:
    8
    Views:
    2,252
    deadsea
    Jan 2, 2005
  3. Replies:
    3
    Views:
    1,035
  4. Dimitri Ognibene
    Replies:
    4
    Views:
    785
    Dimitri Ognibene
    Sep 2, 2006
  5. Ramunas Urbonas
    Replies:
    1
    Views:
    402
    Dino Chiesa [Microsoft]
    Jul 27, 2004
Loading...

Share This Page