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. Advertisements

  2. The thing you need to do is figure out everything that you are storing in a
    Session variable, and determine from this which of these objects is not
    serializable or inherit from the MarshallByRef object.

    --
    Chris Jackson
    Software Engineer
    Microsoft MVP - Windows Client
    Windows XP Associate Expert
    --
    More people read the newsgroups than read my email.
    Reply to the newsgroup for a faster response.
    (Control-G using Outlook Express)
    --

     
    Chris Jackson, Jan 20, 2004
    #2
    1. Advertisements

  3. Maximus

    Maximus Guest

    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.
     
    Maximus, Jan 26, 2004
    #3
    1. Advertisements

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.