Die Sitzungsstatusanforderung kann nicht an den Sitzungsstatus-Server gesendet werden

121

Unsere Website hat derzeit dieses Problem. Grundsätzlich passiert es nur, wenn wir auf bestimmte Links klicken, um ein neues Fenster zu öffnen.
Dies ist die Fehlermeldung, die wir erhalten:

Die Sitzungsstatusanforderung kann nicht an den Sitzungsstatus-Server gesendet werden.
Stellen Sie sicher, dass der ASP.NET-Statusdienst gestartet ist und die Client- und Server-Ports identisch sind.
Wenn sich der Server auf einem Remotecomputer befindet, stellen Sie sicher, dass er Remoteanforderungen akzeptiert, indem Sie den Wert von HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection überprüfen.
Befindet sich der Server auf dem lokalen Computer und ist der zuvor genannte Registrierungswert nicht vorhanden oder auf 0 gesetzt, muss die Verbindungszeichenfolge des Statusservers entweder 'localhost' oder '127.0.0.1' als Servernamen verwenden.

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

Dies ist die Webkonfiguration, die das Tag "sessionstate" enthält:

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

Ich habe den ASP.NET-Statusdienst überprüft und er wird derzeit gestartet und auf automatisch eingestellt

Ich habe die in der Fehlermeldung angegebene Registrierung auf 1 gesetzt, funktioniert aber immer noch nicht.

Liam
quelle

Antworten:

305
  1. Start -> Verwaltung -> Dienste
  2. Klicken Sie mit der rechten Maustaste auf den ASP.NET-Statusdienst und klicken Sie auf "Start".

Außerdem können Sie den Dienst auf automatisch einstellen, damit er nach einem Neustart funktioniert

Jamshid Hashimi
quelle
2
Manchmal habe ich festgestellt, dass es nur funktioniert, nachdem der ASP.NET State Service ein paar Mal neu gestartet wurde!
Matthew Lock
2
Arbeit wie ein Zauber für mich
Arun
1
Genauer Name ist aspnet_state.
AmiNadimi
1
Du bist mein Held ... habe so lange danach gesucht.
G43beli
1
Sie haben mich gerettet ... Stunden, die alle bewegen ... und Sie kommen mit dieser einfachen Lösung ... wirklich ... danke
Roger Tello
26

Wenn Sie HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection auf 1 ändern müssen, müssen Sie den ASP.net-Statusdienst nach dem Ändern des Parameters neu starten .

hikkemikke
quelle
@hikkenmikke Wie überprüfen und ändern Sie HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection
Pomster
8

Prüfe das:

stateConnectionString="tcpip=server:port"

ist richtig. Überprüfen Sie außerdem, ob der Standardport ( 42424) verfügbar ist und Ihr System keinen hat firewall, der den Port Ihres Systems blockiert

mas_oz2k1
quelle
1
Ich habe das gleiche Problem. Es wurde überprüft, ob mein Sitzungsstatusdienst ordnungsgemäß ausgeführt wird, es wird jedoch weiterhin dieselbe Meldung angezeigt. Hier ist meine web.config-Einstellung: <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
4

Geben Sie Services.msc in das Ausführungsfenster des Windows-Ausführungsfensters ein. Es werden alle Windows-Dienste in unserem System aufgelistet. Jetzt müssen wir den Asp .net State Service starten, wie im Bild gezeigt.Geben Sie hier die Bildbeschreibung ein

Ihr Problem wird behoben.

Rinoy Ashokan
quelle
4

Einer meiner Kunden hatte das gleiche Problem. Die folgenden Schritte werden ausgeführt, um dies zu beheben.

 (1) Open Run. 

 (2) Type Services.msc

 (3) Select ASP.NET State Service

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

Sie können auch überprüfen, ob die Windows-Firewall aktiviert ist, da dies möglicherweise Port 42424 blockiert.

jwanagel
quelle
2

Ich habe festgestellt, dass einige Entwickler aus irgendeinem Grund die private IP des Servers außerhalb von IIS an einem unerwarteten Ort definieren, z. B. in einer nicht standardmäßigen Konfigurationsdatei (dh nicht in web.config) oder in einer Textdatei. Dies kann dazu führen, dass der interne Betrieb fehlschlägt, selbst wenn der Dienst gestartet wird, die Ports nicht blockiert werden, die Registrierungsschlüssel korrekt sind usw.

Insbesondere Kaseya legt eine Datei mit dem Namen serveripinternal.txt im IIS-Stammverzeichnis des VSA-Servers ab. Ich habe den Text Ihres Fehlers gesehen, als jemand, der seine eigene Kaseya-Instanz ausführt, die interne IP des Servers geändert hat. Der Server ist erreichbar, IIS antwortet und die Anmeldeseite wird angezeigt. Die Anmeldung schlägt jedoch mit der angegebenen Nachricht fehl.

One-Note-Pony
quelle
1

Ich hatte das gleiche Problem, als eine ASP.NET-Installation beschädigt wurde. In diesem Fall schlagen sie vor , aspnet_regiis -i -enable auszuführen

Matthew Lock
quelle
auf der richtigen asp.net Version. In meinem Fall war es 2
Ricardo Appleton
0

Ich bin kürzlich auf dieses Problem gestoßen, und keine der vorgeschlagenen Lösungen hat es behoben. Das Problem stellte sich als übermäßige Verwendung der in der Sitzung gespeicherten Datensätze heraus. Es gab einen Fehler im Code, der dazu führte, dass die Sitzungsgröße um das 10-fache erhöht wurde.

Es gibt einen Artikel im msdn-Blog, der auch darüber spricht. http://blogs.msdn.com/b/johan/archive/2006/11/20/sessionstate-performance.aspx

Ich habe eine Funktion verwendet, um benutzerdefinierte Ablaufverfolgungsnachrichten zu schreiben, um die Größe der Sitzungsdaten auf der Live-Site zu messen.

Ahmed Mansour
quelle
0

Nicht die beste Antwort, aber es ist trotzdem eine Option:

Kommentieren Sie die angegebene Zeile in der web.config.

Marco Aurelio Fernandez Reyes
quelle