Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 16577|Resposta: 1

[ASP.NET] Os estados de sessão não podem ser serializados. No modo "StateServer" ou "SQLServer"...

[Copiar link]
Publicado em 18/11/2017 21:37:45 | | | |
Os estados de sessão não podem ser serializados. No modo "StateServer" ou "SQLServer", ASP.NET serializa objetos de estado da sessão, então objetos não serializáveis ou objetos MarshalByRef não são permitidos. As mesmas restrições se aplicam se a loja de estados de sessão personalizada realizar serialização semelhante no modo "Custom".        



Solução:

Variáveis não podem ser serializadas ao atribuir uma Sessão, então tente adicionar [Serializable] à Classe. Resolução de problemas

[Serializável]
classe pública MyClass
{
.......
}

Vamos falar sobre [Serializable], que é usado para informar o compilador de que a classe pode ser serializada

Serialização refere-se ao processo de armazenar o estado de uma instância de objeto em um meio de armazenamento. Nesse processo, os campos público e privado do objeto e o nome da classe (incluindo a montagem em que a classe reside) são convertidos em um fluxo de bytes antes de gravar o fluxo de bytes no fluxo de dados. Quando o objeto é subsequentemente desserializado, uma cópia idêntica do objeto original é criada.
Ao implementar mecanismos de serialização em um ambiente orientado a objetos, devem haver alguns trade-offs entre facilidade de uso e flexibilidade. Desde que você tenha controle suficiente sobre esse processo, pode torná-lo em grande parte automático. Por exemplo, a simples serialização binária não é suficiente, ou há a necessidade de determinar quais campos de uma classe precisam ser serializados por um motivo específico. As seções a seguir explorarão os mecanismos confiáveis de serialização fornecidos pelo framework .NET e destacarão alguns dos recursos importantes que permitem personalizar o processo de serialização conforme suas necessidades.





Anterior:ASP.NET StateServer que armazena a Sessão
Próximo:SQLserver como copiar uma tabela para outra
 Senhorio| Publicado em 19/11/2017 16:19:48 |
Para alguns objetos que herdam do MarshalByRef, como objetos do DbTransation, eles não podem ser serializados. Portanto, você não pode usar o Session para armazenar objetos que herdam o tipo MarshalByRef.
A solução alternativa é usar o Cache e o SessionID para emular a Sessão. A classe Cache pode armazenar em cache qualquer tipo de objeto.
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com