Erreur de serialisation

caudette Messages postés 52 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 20 août 2007 - 23 mai 2007 à 17:54
fab421 Messages postés 8 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 23 septembre 2010 - 20 juin 2008 à 10:04
bonjour,

je debute en asp.net et je developpe une application SAV de suivi des clients. je souhaiterai avoir de l'aide!! mais j'ai dejà avancé dans le projet grace aux différent forum.bon bref!!
lorsque je veux configurer asp.net à partir de visual studio 2005 edition professionnelle j'obtient cette page d'erreur ci dessous, je suis bloquée. merci de votre aide

 
Erreur du serveur dans l'application '/asp.netwebadminfiles'.
<hr width= "100%" color="silver" size="1" />
Impossible de sérialiser l'état de session. En mode 'StateServer' et 'SQLServer', ASP.NET sérialise les objets d'état de session, et par conséquent, les objets non sérialisables ou les objets MarshalByRef ne sont pas autorisés. La même restriction s'applique si une sérialisation similaire est effectuée par le magasin d'état de session personnalisé en mode 'Personnalisé'.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Web.HttpException: Impossible de sérialiser l'état de session. En mode 'StateServer' et 'SQLServer', ASP.NET sérialise les objets d'état de session, et par conséquent, les objets non sérialisables ou les objets MarshalByRef ne sont pas autorisés. La même restriction s'applique si une sérialisation similaire est effectuée par le magasin d'état de session personnalisé en mode 'Personnalisé'.

Erreur source:

Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.


Trace de la pile:

[SerializationException: Le type 'System.Web.Administration.WebAdminRemotingManager' dans l'assembly 'App_Code.z9kixqnn, Version  =0.0.0.0, Culture=neutral, PublicKeyToken=null' n'est pas marqué comme sérialisable.]
System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) +2318005
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.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +438
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) +131
System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +1551

[HttpException (0x80004005): Impossible de sérialiser l'état de session. En mode 'StateServer' et 'SQLServer', ASP.NET sérialise les objets d'état de session, et par conséquent, les objets non sérialisables ou les objets MarshalByRef ne sont pas autorisés. La même restriction s'applique si une sérialisation similaire est effectuée par le magasin d'état de session personnalisé en mode 'Personnalisé'.]
System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +1641
System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object value, BinaryWriter writer) +35
System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter writer) +632
System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData item, Stream stream) +259
System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData item, Int32 initialStreamSize, Byte[]&amp; buf, Int32&amp; length) +61
System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) +115
System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +612
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +138
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +65

4 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 mai 2007 à 21:36
bonjour,

l'erreur est plutot explicite ... tu ne peux pas utiliser des variables non serializable lorsque tu utilises le mode stateserver ou sqlserver. Il faut passer par l'état inproc ou alors ne pas mettre ce genre d'objet dans la session. Pour passer en mode inproc ca se configure au niveau du web.config <sessionstate mode="inproc"

<hr />Cyril - MSP - MCTS ASP.net & SQL
0
caudette Messages postés 52 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 20 août 2007
28 mai 2007 à 10:16
bonjour,

merci de ta reponse sur la serailisation, mais dans mon fichier web.config, je n'ai pas <SessionState mode>, où je pourrai le trouver?
merci
0
caudette Messages postés 52 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 20 août 2007
28 mai 2007 à 10:32
bonjour,
en faite j'ai trouvé où il fallait changé je suis allée dans IIs et site web par defaut, click droit proprièté et apres ASP.NET et Gestion d'état puis mode etat session et j'ai choisi inProc.

merci bcp
0
fab421 Messages postés 8 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 23 septembre 2010
20 juin 2008 à 10:04
Un grand merci à tous deux, car ceci m'a permis de comprendre pourquoi j'obtenais cette erreur :

"Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance. (provider: Fournisseur de canaux nommés, error: 40 - Impossible d'ouvrir une connexion à SQL Server)."

... à laquelle les solutions classiques (http://support.microsoft.com/kb/914277) n'apportaient rien de concluant. 
0
Rejoignez-nous