Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 16577|Risposta: 1

[ASP.NET] Gli stati di sessione non possono essere serializzati. In modalità "StateServer" o "SQLServer"...

[Copiato link]
Pubblicato su 18/11/2017 21:37:45 | | | |
Gli stati di sessione non possono essere serializzati. In modalità "StateServer" o "SQLServer", ASP.NET serializzano gli oggetti di stato della sessione, quindi non sono permessi oggetti non serializzabili o MarshalByRef. Le stesse restrizioni si applicano se lo store di stato della sessione personalizzato esegue una serializzazione simile in modalità "Personalizzata".        



Soluzione:

Le variabili non possono essere serializzate quando si assegna una Session, quindi prova ad aggiungere [Serializable] alla Classe. Risoluzione dei problemi

[Serializzabile]
Classe pubblica MyClass
{
.......
}

Parliamo di [Serializable], che viene usato per informare il compilatore che la classe può essere serializzata

La serializzazione si riferisce al processo di memorizzazione dello stato di un'istanza di oggetto su un supporto di archiviazione. In questo processo, i campi pubblico e privato dell'oggetto e il nome della classe (incluso l'assembly in cui risiede la classe) vengono convertiti in un flusso di byte prima di scrivere il flusso di byte nel flusso di dati. Quando l'oggetto viene successivamente deserializzato, viene creata una copia identica dell'oggetto originale.
Quando si implementano meccanismi di serializzazione in un ambiente orientato agli oggetti, devono esserci alcuni compromessi tra facilità d'uso e flessibilità. Finché hai abbastanza controllo su questo processo, puoi renderlo in gran parte automatico. Ad esempio, la semplice serializzazione binaria non è sufficiente, oppure è necessario determinare quali campi di una classe devono essere serializzati per una ragione specifica. Le sezioni seguenti esploreranno i meccanismi affidabili di serializzazione forniti dal framework .NET e evidenzieranno alcune delle funzionalità importanti che permettono di personalizzare il processo di serializzazione secondo le proprie esigenze.





Precedente:ASP.NET StateServer che memorizza la Sessione
Prossimo:sqlserver come copiare una tabella per un'altra
 Padrone di casa| Pubblicato su 19/11/2017 16:19:48 |
Per alcuni oggetti che ereditano da MarshalByRef, come gli oggetti DbTransation, non possono essere serializzati. Pertanto, non puoi usare Session per memorizzare oggetti che ereditano il tipo MarshalByRef.
La soluzione alternativa è usare la cache e l'SessionID per emulare la sessione. La classe Cache può memorizzare in cache qualsiasi tipo di oggetto.
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com