Impossible d'envoyer la demande d'état de session au serveur d'état de session

122

Notre site rencontre actuellement ce problème. Fondamentalement, cela ne se produit que lorsque nous cliquons sur des liens particuliers où une nouvelle fenêtre apparaîtra.
Voici le message d'erreur que nous recevons:

Impossible d'envoyer la demande d'état de session au serveur d'état de session.
Veuillez vous assurer que le service d'état ASP.NET est démarré et que les ports client et serveur sont identiques.
Si le serveur se trouve sur une machine distante, assurez-vous qu'il accepte les demandes distantes en vérifiant la valeur de HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection.
Si le serveur se trouve sur la machine locale et si la valeur de registre mentionnée précédemment n'existe pas ou est définie sur 0, la chaîne de connexion du serveur d'état doit utiliser «localhost» ou «127.0.0.1» comme nom de serveur.

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

c'est le webconfig qui contient la balise sessionstate:

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

J'ai vérifié le service d'état ASP.NET, et il est actuellement démarré et défini sur automatique

J'ai mis le registre indiqué dans le message d'erreur à 1, mais ne fonctionne toujours pas.

Liam
la source

Réponses:

305
  1. Démarrer -> Outils d'administration -> Services
  2. Cliquez avec le bouton droit sur le service d'état ASP.NET et cliquez sur «démarrer»

De plus, vous pouvez définir le service sur automatique afin qu'il fonctionne après un redémarrage

Jamshid Hashimi
la source
2
Parfois, j'ai trouvé que cela ne fonctionne qu'après avoir redémarré le service d'état ASP.NET plusieurs fois!
Matthew Lock
2
Travaille comme un charme pour moi
Arun
1
Le nom exact est aspnet_state.
AmiNadimi
1
Ton mon héros ... cherchait ça depuis si longtemps.
G43beli
1
vous m'avez sauvé ... des heures en émouvant tout le monde ... et vous arrivez avec cette solution simple ... vraiment .. merci
Roger Tello
26

Si vous devez modifier HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection sur 1, n'oubliez pas de redémarrer le service d' état ASP.net après avoir modifié le paramètre.

randonnée pédestre
la source
@hikkenmikke Comment vérifier et modifier HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection
Pomster
8

Regarde ça:

stateConnectionString="tcpip=server:port"

est correct. Veuillez également vérifier que le port par défaut ( 42424) est disponible et que votre système ne dispose pas d'un firewallqui bloque le port sur votre système

mas_oz2k1
la source
1
J'ai le même problème, vérifié que mon service d'état de session fonctionne correctement, mais je reçois toujours le même message. Voici mon paramètre 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
5

Tapez Services.msc dans le panneau d'exécution de la fenêtre d'exécution de Windows. Il listera tous les services Windows de notre système. Maintenant, nous devons démarrer le service Asp .net State comme indiqué dans l'image.entrez la description de l'image ici

Votre problème sera résolu.

Rinoy Ashokan
la source
J'ai eu cette erreur après le redémarrage en raison de Windows Update. J'ai suivi ces étapes et cela a fonctionné. Je vous remercie.
Mauricio Arias Olave
4

Un de mes clients faisait face au même problème. Les étapes suivantes sont prises pour résoudre ce problème.

 (1) Open Run. 

 (2) Type Services.msc

 (3) Select ASP.NET State Service

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

Une autre chose à vérifier est de savoir si le pare-feu Windows est activé, car cela pourrait bloquer le port 42424.

Jwanagel
la source
2

J'ai découvert que certains développeurs définiront pour une raison quelconque l'adresse IP privée du serveur en dehors d'IIS dans un emplacement inattendu, comme un fichier de configuration non standard (c'est-à-dire pas web.config) ou un fichier texte. Cela peut entraîner l'échec du fonctionnement interne même lorsque le service est démarré, les ports ne sont pas bloqués, les clés de registre sont correctes, etc.

Kaseya, en particulier, place un fichier appelé serveripinternal.txt dans le répertoire racine IIS du serveur VSA. J'ai vu le texte de votre erreur lorsque quelqu'un exécutant sa propre instance Kaseya a changé l'adresse IP interne du serveur. Le serveur sera accessible, IIS répondra et la page de connexion s'affichera - mais la connexion échouera avec le message cité.

Poney à une note
la source
1

J'ai eu le même problème lorsqu'une installation ASP.NET était corrompue. Dans ce cas, ils suggèrent d' exécuter aspnet_regiis -i -enable

Matthew Lock
la source
sur la version correcte d'asp.net. Dans mon cas, c'était 2
Ricardo Appleton
0

J'ai récemment rencontré ce problème et aucune des solutions proposées ne l'a résolu. Le problème s'est avéré être une utilisation excessive des ensembles de données stockés dans la session. Il y avait une faille dans le code qui entraînait une augmentation de 10x de la taille de la session.

Il y a un article sur le blog msdn qui en parle également. http://blogs.msdn.com/b/johan/archive/2006/11/20/sessionstate-performance.aspx

J'ai utilisé une fonction pour écrire des messages de trace personnalisés pour mesurer la taille des données de session sur le site en direct.

Ahmed Mansour
la source
0

Ce n'est pas la meilleure réponse, mais c'est quand même une option:

Commentez la ligne donnée dans le web.config.

Marco Aurelio Fernandez Reyes
la source