Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Out-of-Proc Session management with SQLServer
Message
De
30/04/2004 09:51:47
 
Information générale
Forum:
ASP.NET
Catégorie:
The Mere Mortals .NET Framework
Divers
Thread ID:
00899725
Message ID:
00899739
Vues:
16
Carl,

Did you run the script that installs the stuff that ASP.NET needs for using SQL Server? (InstallSqlState.sql)

Also, I'm assuming that your .GetOrderByOrderID() method is supposed to return a DataSet. If so, that *should* work, but maybe try this instead: (I'm just guessing here).
DataSet dsOrder = Me.oOrder.GetOrderByOrderID(OrderID)
Session(“dsorder”) = dsOrder
As as I mentioned in my other post, I've done this successfully, so it *is* do-able. I used a Typed DataSet (not that that should matter), but one thing that I remember running across when I did this is that I when I sub-classed my Typed DataSet it was *not* marked as serializeable and that caused problems until I changed it. If you're subclassing DataSets, you need to be sure that the sub-class is marked with the [Serializable()] attribute, like this:
	[Serializable()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Diagnostics.DebuggerStepThrough()]
	[System.ComponentModel.ToolboxItem(true)]
	public class MyDataSet : MyAutoGeneratedDataSet
	{
            //... etc. etc.
        }
I hope this helps ...

~~Bonnie



>Microsoft’s documentation states that the dataset is serializable. Yet, when I try to persist a dataset using out-of-proc session management using SQLServer, the session fails. I will need to use this method in order to scale up to and set up a web farm. What am I missing?
>
>The code that fails according to the debugger:
>
>
>Session(“disorder”) = Me.oOrder.GetOrderByOrderID(OrderID)
>
>
>My web config file is set up this way:
>
>
>    <sessionState
>            mode="SQLServer"
>            stateConnectionString="tcpip=127.0.0.1:42424"
>            sqlConnectionString="data source=127.0.0.1;user id=sa;password=somepwd"
>            cookieless="false"
>            timeout="20"
>    />
>
>
>When I run the above code, I get this error:
>
>Server Error in '/MyTestApplication' Application.
>________________________________________
>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 OakLeaf.MM.Main.Data.mmDataSet in Assembly Mere Mortals Framework, Version=1.1.1119.20257, Culture=neutral, PublicKeyToken=511bd18e16c7f771 is not marked as serializable.]
> System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +600
> System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter) +48
> System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +683
> 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.SqlStateClientManager.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
>
>________________________________________
>Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573
>
>
>Regards,
>Carl.
>
>Carl Olson, Jr.
>Cerelogic, Inc.
>
>www.cerelogic.com
>
>770.577.0398 (Office)
Bonnie Berent DeWitt
NET/C# MVP since 2003

http://geek-goddess-bonnie.blogspot.com
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform