Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rato de Fórum

Não é possível serializar o estado da sessão.

Recommended Posts

criei uma classe chamada Passos.

 

dentro dela, criei algumas variáveis simples.

 

public class Passos
{
   public Passos() { }

   public string nome;
   public int idade;
}

na minha aplicação. criei um objeto e atribui alguns valores. e logo em seguida salvo o objeto numa sessão.

 

Passos oPassos = new Passos();
oPassos.nome = "ratodeforum";
oPassos.idade = 26;

Session["Passo1"] = oPassos;

 

mas quando executo o código ocorrer o seguinte erro:

 

Não é possível serializar o estado da sessão. Nos modos 'StateServer' e 'SQLServer', o ASP.NET serializa os objetos de estado de sessão e, como resultado, os objetos não serializáveis ou os objetos MarshalByRef não são permitidos. A mesma restrição se aplica se uma serialização semelhante é feita pelo armazenamento de estado de sessão personalizado no modo 'Custom'.

imagem com o erro

 

 

alguém tem idéia do que seja isso? procurei no google e não encontrei nada parecido com isso.

 

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rato eu testei seu codigo e funcionou 100%, em uma aplicação com framwrok 3.5, qual a versao você ta usando!

Fis isso pra testar:

Passos oPassos = new Passos();
oPassos.nome = "ratodeforum";
oPassos.idade = 26;
Session["Passo1"] = oPassos;

if(!Equals(Session["Passo1"], null))
{
	Passos p = (Passos) Session["Passo1"];
}

Tenta colocar isso na sua classe:

 


[Serializable]
public class Passos
{
	public Passos() { }

	public string nome;
	public int idade;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é Ivan... esse é o problema, não há erro nesse código. Sempre utilizo no Framework 2.0 e nunca apareceu esse erro.

 

Agora é algo isolado, mas preciso resolver e não tenho a mínima idéia como...

 

fiz oq sugeriu, mas não funcionou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Rato,

 

Faltou apenas você dizer que sua classe é serealizavel.

 

[Serializable]

Sendo assim sua classe fica da seguinte forma:

[Serializable]
public class Passos
{   
   public Passos() 
   { }   
   
   public string Nome;   
   public int Idade;
}

Espero te-lo ajudado, ;)

 

Angelo Compri

Compartilhar este post


Link para o post
Compartilhar em outros sites

então Angelo, o Ivan já tinha sugerido isso. Tentei e não funcionou.

 

 

 

analisando linha a linha, percebi que o erro ocorre no momento que guardo o objeto na sessão, vcs chegaram ver a imagem que postei?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rato faça o seguinte teste:

 

Coloque o Get; Set; em sua classe:

 

[Serializable]
public class Passos
{      
    private string _nome;
    private int _idade;

    public string Nome
    {
      get { return _nome; }
      set { _nome = value; }
    }

    public string Idade
    {
      get { return _idade; }
      set { _idade = value; }
    }

    public Passos()
    { }
}

Ao que me consta houve uma alteração sobre declaração de propriedades em classes do 2.0 para o 3.0.

No 3.0 não é mais obrigatório ter o Field na classe, mas no 2.0 era obrigado.

Faça o teste e veja se funciona..

 

Espero te-lo ajudado, ;)

 

Angelo Compri

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.