Невозможно отправить запрос состояния сеанса серверу состояния сеанса

122

На нашем сайте в настоящее время возникает эта проблема. В основном это происходит только тогда, когда мы нажимаем на определенные ссылки, где открывается новое окно.
Это сообщение об ошибке, которое мы получаем:

Невозможно отправить запрос состояния сеанса серверу состояния сеанса.
Убедитесь, что служба состояния ASP.NET запущена и что порты клиента и сервера совпадают.
Если сервер находится на удаленном компьютере, убедитесь, что он принимает удаленные запросы, проверив значение HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection.
Если сервер находится на локальном компьютере, и если ранее упомянутое значение реестра не существует или установлено в 0, тогда в строке подключения к серверу состояний необходимо использовать либо «localhost», либо «127.0.0.1» в качестве имени сервера.

целевой сайт:
Void MakeRequest (StateProtocolVerb, System.String, StateProtocolExclusive, Int32, Int32, Int32, Byte [], Int32, Int32, SessionNDMakeRequestResults ByRef)

это веб-конфигурация, содержащая тег состояния сеанса:

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

Я проверил службу состояний ASP.NET, и в настоящее время она запущена и настроена на автоматический

Я установил реестр, указанный в сообщении об ошибке, на 1, но все еще не работает.

Liam
источник

Ответы:

305
  1. Пуск–> Администрирование -> Службы
  2. Щелкните правой кнопкой мыши службу состояний ASP.NET и нажмите «Пуск».

Кроме того, вы можете установить автоматическую службу, чтобы она работала после перезагрузки.

Джамшид Хашими
источник
2
Иногда я обнаруживал, что это работает только после перезапуска государственной службы ASP.NET пару раз!
Мэтью Лок
2
Работай как шарм для меня
Арун
1
Точное имя aspnet_state.
AmiNadimi 02
1
Ваш мой герой ... так долго этого ждал.
G43beli
1
вы сэкономили мне ... часы, перемещая всех ... и вы пришли с этим простым решением ... правда ... спасибо
Роджер Телло
26

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

hikkemikke
источник
@hikkenmikke Как проверить и изменить HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Параметры \ AllowRemoteConnection
Помстер
8

Проверь это:

stateConnectionString="tcpip=server:port"

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

mas_oz2k1
источник
1
У меня та же проблема. Проверено, что моя служба состояния сеанса работает правильно, но все равно получаю то же сообщение. Вот мой параметр 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

Введите Services.msc на панели запуска окна запуска Windows. В нем будут перечислены все службы Windows в нашей системе. Теперь нам нужно запустить службу Asp .net State, как показано на изображении.введите описание изображения здесь

Ваша проблема будет решена.

Риной Ашокан
источник
Я получил эту ошибку после перезагрузки из-за Центра обновления Windows. Я выполнил эти шаги, и это сработало. Спасибо.
Маурисио Ариас Олаве,
4

Один из моих клиентов столкнулся с той же проблемой. Следующие шаги предприняты, чтобы исправить это.

 (1) Open Run. 

 (2) Type Services.msc

 (3) Select ASP.NET State Service

 (4) Right Click and Start it.
Хирен Парги
источник
2

Еще одна вещь, которую следует проверить, - включен ли у вас брандмауэр Windows, поскольку это может блокировать порт 42424.

jwanagel
источник
2

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

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

Пони с одной записью
источник
1

У меня была такая же проблема, когда некоторая установка ASP.NET была повреждена. В этом случае они предлагают запустить aspnet_regiis -i -enable

Мэтью Лок
источник
на правильной версии asp.net. В моем случае это было 2
Рикардо Эпплтон
0

Недавно я столкнулся с этой проблемой, и ни одно из предложенных решений не устранило ее. Проблема оказалась в чрезмерном использовании наборов данных, хранящихся в сеансе. В коде была ошибка, из-за которой размер сеанса увеличился в 10 раз.

В блоге msdn есть статья, в которой также говорится об этом. http://blogs.msdn.com/b/johan/archive/2006/11/20/sessionstate-performance.aspx

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

Ахмед Мансур
источник
0

Не лучший ответ, но все равно вариант:

Прокомментируйте данную строку в файле web.config.

Марко Аурелио Фернандес Рейес
источник