Неможливо зробити запит стану сеансу на сервер стану сеансу


121

На даний момент у нас є ця проблема. В основному це відбувається лише тоді, коли ми натискаємо певні посилання, де з’явиться нове вікно.
Це повідомлення про помилку, яке ми отримуємо:

Неможливо зробити запит стану сеансу на сервер стану сеансу.
Будь ласка, переконайтеся, що послуга ASP.NET State запускається і клієнтські та серверні порти однакові.
Якщо сервер знаходиться на віддаленій машині, переконайтеся, що він приймає віддалені запити, перевіривши значення HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Параметри \ AllowRemoteConnection.
Якщо сервер знаходиться на локальній машині, і якщо раніше згадане значення реєстру не існує або встановлено у 0, то рядок з'єднання з сервером стану повинен використовувати або "localhost", або "127.0.0.1" як ім'я сервера.

цільовий сайт:
Недійсний MakeRequest (StateProtocolVerb, System.String, StateProtocolExclusive, Int32, Int32, Int32, байт [], Int32, Int32, SessionNDMakeRequestResults ByRef)

це веб-конфігурація, що містить тег sessiontate:

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

Я перевірив державну службу ASP.NET, і вона наразі запущена та встановлена ​​на автоматичну

Я встановив реєстр, зазначений у повідомленні про помилку, на 1, але все ще не працює.

Відповіді:


305
  1. Старт–> Адміністративні інструменти -> Послуги
  2. Клацніть правою кнопкою миші на державній службі ASP.NET і натисніть «пуск»

Крім того, ви можете встановити послугу автоматичною, щоб вона працювала після перезавантаження


2
Іноді я виявив, що це працює лише після перезавантаження Держслужби ASP.NET кілька разів!
Меттью Лок

2
Робота Як шарм для мене
Арун

1
Точна назва aspnet_state.
AmiNadimi

1
Ваш мій герой ... так довго шукав це.
G43beli

1
Ви врятували мене ... години переїзду всіх ... і приїжджайте з цим простим рішенням ... дійсно .. дякую
Роджер Телло

26

Якщо вам необхідно змінити HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Параметри \ AllowRemoteConnection 1, НЕ забудьте перезапустити в державну ASP.net службу після зміни параметра.


@hikkenmikke Як перевірити та змінити HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Параметри \ AllowRemoteConnection
Pomster

8

Перевірте, що:

stateConnectionString="tcpip=server:port"

правильно. Також перевірте, 42424чи доступний порт за замовчуванням ( ) і що у вашій системі немає firewallблоку порту у вашій системі


1
У мене така ж проблема. Перевірено, що служба моєї сесії працює належним чином, але все одно отримую те саме повідомлення. Ось мій параметр web.config: <sessionState mode = "StateServer" stateConnectionString = "tcpip = 127.0.0.1: 42424" sqlConnectionString = "джерело даних = 127.0.0.1; Trusted_Connection = так" cookieless = "false" timeout = "30" />
lstanczyk

4

Наберіть Services.msc на панелі запуску вікна запуску Windows. У ньому буде перераховано всі служби Windows у нашій системі. Тепер нам потрібно запустити службу Asp .net State як показано на зображенні.введіть тут опис зображення

Ваша проблема буде вирішена.


4

Один із моїх клієнтів стикався з тим же питанням. Для усунення цього вживаються наступні кроки.

 (1) Open Run. 

 (2) Type Services.msc

 (3) Select ASP.NET State Service

 (4) Right Click and Start it.

2

Інша річ, щоб перевірити, чи увімкнено брандмауер Windows, оскільки це може блокувати порт 42424.


2

Я виявив, що деякі розробники чомусь визначають приватний IP-сервер за межами IIS в несподіваному місці, наприклад, нестандартний конфігураційний файл (тобто не web.config) або текстовий файл. Це може призвести до збою внутрішньої роботи навіть при запуску послуги, порти не блокуються, ключі рег. Є правильними тощо.

Зокрема, Kaseya розміщує файл, який називається serveripinternal.txt, у кореневому каталозі IIS сервера VSA. Я бачив текст вашої помилки, коли хтось, який працює з власним екземпляром Kaseya, змінив внутрішню IP-адресу сервера. Сервер буде доступний, IIS відповість, і ввійде сторінка входу - але вхід не вдасться із цитованим повідомленням.



0

Я нещодавно зіткнувся з цим питанням, і жодне із запропонованих рішень не вирішило його. Проблема виявилася в надмірному використанні наборів даних, збережених у сеансі. У коді стався недолік, що призводить до збільшення розміру сеансу в 10 разів.

На блозі msdn є стаття, яка також розповідає про це. http://blogs.msdn.com/b/johan/archive/2006/11/20/sesionstate-performance.aspx

Я використовував функцію для написання користувальницьких повідомлень про сліди для вимірювання розміру даних сеансу на веб-сайті в реальному часі.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.