Forum: ASP.NET2.0 |
Thema:
AW: SQLCommand in Session speichern |
Von:
Markus Peklo (
01.08.2007 08:35) |
Selbst über eine eigens dafür erstellte Klasse in der ich den SQLCommand zwischenspeicher bekomm ich einen Fehler:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.IO;
using System.Xml.Serialization;
[Serializable]
public class SaveSQLCommand
{
private SqlCommand mySQLCom;
public SaveSQLCommand()
{
}
public SqlCommand SQLCom
{
get
{
return mySQLCom;
}
set
{
this.mySQLCom = value;
}
}
}
Die Fehlermeldung lautet:
Serverfehler in der Anwendung /*.
--------------------------------------------------------------------------------
Der Sitzungszustand kann nicht serialisiert werden. Im 'StateServer'- und 'SQLServer'-Modus serialisiert ASP.NET die Sitzungszustandsobjekte, sodass nicht serialisierbare Objekte bzw. MarshalByRef-Objekte nicht zulässig sind. Diese Beschränkung gilt auch, wenn eine ähnliche Serialisierung im Custom-Modus durch den benutzerdefinierten Sitzungszustandsspeicher ausgeführt wird.
Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.
Ausnahmedetails: System.Web.HttpException: Der Sitzungszustand kann nicht serialisiert werden. Im 'StateServer'- und 'SQLServer'-Modus serialisiert ASP.NET die Sitzungszustandsobjekte, sodass nicht serialisierbare Objekte bzw. MarshalByRef-Objekte nicht zulässig sind. Diese Beschränkung gilt auch, wenn eine ähnliche Serialisierung im Custom-Modus durch den benutzerdefinierten Sitzungszustandsspeicher ausgeführt wird.
Quellfehler:
Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden.
Stapelüberwachung:
[SerializationException: Der Typ System.Data.SqlClient.SqlCommand in Assembly System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ist nicht als serialisierbar gekennzeichnet.]
System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) +2317909
System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) +245
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() +88
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) +305
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) +50
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) +411
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +489
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) +131
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) +12
System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +2020
[HttpException (0x80004005): Der Sitzungszustand kann nicht serialisiert werden. Im 'StateServer'- und 'SQLServer'-Modus serialisiert ASP.NET die Sitzungszustandsobjekte, sodass nicht serialisierbare Objekte bzw. MarshalByRef-Objekte nicht zulässig sind. Diese Beschränkung gilt auch, wenn eine ähnliche Serialisierung im Custom-Modus durch den benutzerdefinierten Sitzungszustandsspeicher ausgeführt wird.]
System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +2124
System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object value, BinaryWriter writer) +54
System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter writer) +852
System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData item, Stream stream) +256
System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData item, Int32 initialStreamSize, Byte[]& buf, Int32& length) +85
System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) +145
System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +713
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +167
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +117
--------------------------------------------------------------------------------
Versionsinformationen: Microsoft .NET Framework-Version:2.0.50727.42; ASP.NET-Version:2.0.50727.210
Markus
Betreff |
Von |
Datum |
|
|
AW: AW: SQLCommand in Session speichern
Es ist erstens absolut NICHT sinnvoll ein Command-Objekt in eine Session zu legen und 2tens hängt am Command die Connection dran und dadurch wirds vermutlich ein Problem bei der Serialisierung... |
|
|
|
|
|
Bernhard
Grojer
|
01.08.2007 10:43 |
|
|
Philipp
Barnau
|
28.09.2007 16:42 |
|
|
AW: AW: AW: AW: SQLCommand in Session speichern
Selbe Sache ... Selbes Problem. Viewstate wird serialisiert. Das wirst nicht hinbekommen mit Command und Connection.<br><br>Nochmals: Das macht NULL Sinn, soetwas wegzuspeichern und geht gegend jedes... |
|
|
|
|
|
Bernhard
Grojer
|
28.09.2007 21:52 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!