Incapaz de fazer o pedido de estado de sessão ao servidor de estado de sessão

122

Nosso site está tendo este problema. Basicamente, isso só acontece quando clicamos em alguns links específicos, onde uma nova janela será exibida.
Esta é a mensagem de erro que recebemos:

Não é possível fazer a solicitação de estado de sessão ao servidor de estado de sessão.
Certifique-se de que o serviço ASP.NET State seja iniciado e que as portas do cliente e do servidor sejam as mesmas.
Se o servidor estiver em uma máquina remota, certifique-se de que ele aceita solicitações remotas verificando o valor de HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection.
Se o servidor estiver na máquina local e se o valor de registro mencionado anteriormente não existir ou estiver definido como 0, a string de conexão do servidor de estado deve usar 'localhost' ou '127.0.0.1' como o nome do servidor.

site de destino:
Void MakeRequest (StateProtocolVerb, System.String, StateProtocolExclusive, Int32, Int32, Int32, Byte [], Int32, Int32, SessionNDMakeRequestResults ByRef)

este é o webconfig que contém a tag sessionstate:

<sessionState mode="StateServer" timeout="45" />

Verifiquei o serviço de estado do ASP.NET e está atualmente iniciado e definido como automático

Eu configurei o registro indicado na mensagem de erro como 1, mas ainda não está funcionando.

Liam
fonte

Respostas:

305
  1. Iniciar–> Ferramentas Administrativas -> Serviços
  2. Clique com o botão direito em ASP.NET State Service e clique em “start”

Além disso, você pode definir o serviço como automático para que funcione após uma reinicialização

Jamshid Hashimi
fonte
2
Às vezes, descobri que só funciona depois de reiniciar o serviço de estado do ASP.NET algumas vezes!
Matthew Lock
2
Trabalhe como um encanto para mim
Arun
1
O nome exato é aspnet_state.
AmiNadimi
1
Seu meu herói ... estava procurando por isso por tanto tempo.
G43beli de
1
você me salvou ... horas movendo todo mundo ... e yoy chega com esta solução fácil ... realmente .. obrigado
Roger Tello
26

Se você precisar alterar HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection para 1, lembre-se de reiniciar o serviço de estado ASP.net após alterar o parâmetro.

hikkemikke
fonte
@hikkenmikke Como você verifica e altera HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection
Pomster
8

Verifique se:

stateConnectionString="tcpip=server:port"

está correto. Além disso, verifique se a porta padrão ( 42424) está disponível e se o seu sistema não tem um firewallque esteja bloqueando a porta em seu sistema

mas_oz2k1
fonte
1
Eu tenho o mesmo problema, verifiquei se meu serviço de estado de sessão está funcionando corretamente, mas ainda recebo a mesma mensagem. Aqui está minha configuração web.config: <sessionState mode = "StateServer" stateConnectionString = "tcpip = 127.0.0.1: 42424" sqlConnectionString = "data source = 127.0.0.1; Trusted_Connection = yes" cookieless = "false" timeout = "30" />
lstanczyk de
5

Digite Services.msc no painel de execução da janela de execução do Windows. Ele listará todos os serviços do Windows em nosso sistema. Agora precisamos iniciar o serviço Asp .net State como mostrado na imagem.insira a descrição da imagem aqui

Seu problema será resolvido.

Rinoy Ashokan
fonte
Recebi este erro após reiniciar devido ao Windows Update. Eu segui essas etapas e funcionou. Obrigado.
Mauricio Arias Olave
4

Um de meus clientes estava enfrentando o mesmo problema. As etapas a seguir são executadas para corrigir isso.

 (1) Open Run. 

 (2) Type Services.msc

 (3) Select ASP.NET State Service

 (4) Right Click and Start it.
Hiren Parghi
fonte
2

Outra coisa a verificar é se o Firewall do Windows está habilitado, pois isso pode estar bloqueando a porta 42424.

jwanagel
fonte
2

Descobri que alguns desenvolvedores, por algum motivo, definirão o IP privado do servidor fora do IIS em um local inesperado, como um arquivo de configuração fora do padrão (ou seja, não web.config) ou um arquivo de texto. Isso pode fazer com que a operação interna falhe mesmo quando o serviço é iniciado, as portas não estão sendo bloqueadas, as chaves de registro estão corretas etc.

A Kaseya, em particular, coloca um arquivo chamado serveripinternal.txt no diretório raiz do IIS do servidor VSA. Eu vi o texto do seu erro quando alguém executando sua própria instância Kaseya alterou o IP interno do servidor. O servidor estará acessível, o IIS responderá e a página de login aparecerá - mas o login falhará com a mensagem citada.

Pônei de uma nota
fonte
1

Tive o mesmo problema quando alguma instalação do ASP.NET foi corrompida. Nesse caso, eles sugerem executar aspnet_regiis -i -enable

Matthew Lock
fonte
na versão correta do asp.net. No meu caso, foi 2
Ricardo Appleton
0

Recentemente, encontrei esse problema e nenhuma das soluções propostas o corrigiu. O problema acabou sendo um uso excessivo de conjuntos de dados armazenados na sessão. Houve uma falha no código que fez com que o tamanho da sessão aumentasse 10x.

Existe um artigo no blog do msdn que também fala sobre isso. http://blogs.msdn.com/b/johan/archive/2006/11/20/sessionstate-performance.aspx

Usei uma função para escrever mensagens de rastreamento personalizadas para medir o tamanho dos dados da sessão no site ao vivo.

Ahmed mansour
fonte
0

Não é a melhor resposta, mas é uma opção de qualquer maneira:

Comente a linha fornecida no web.config.

Marco Aurelio Fernandez Reyes
fonte