Сервер состояния .NET: невозможно отправить запрос состояния сеанса на сервер состояния сеанса - PullRequest
0 голосов
/ 26 октября 2018

У меня была проблема с существующим приложением, поэтому я создал совершенно новое приложение MVC без какой-либо функциональности, кроме чтения состояния сеанса, и у меня возникла та же проблема.

С этой строкой в ​​web.config:

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="20" />

Я получаю это, когда приложение запускается и пытается использовать сеанс: «Невозможно сделать запрос состояния сеанса на сервер состояния сеанса».

Полный стек ошибок и информация о версии:

[HttpException (0x80070057): Unable to make the session state request to the session state server. Please ensure that the ASP.NET State service is started and that the client and server ports are the same.  If the server is on a remote machine, please ensure that it accepts remote requests by checking the value of HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection.  If the server is on the local machine, and if the before mentioned registry value does not exist or is set to 0, then the state server connection string must use either 'localhost' or '127.0.0.1' as the server name.]
System.Web.SessionState.OutOfProcSessionStateStore.MakeRequest(StateProtocolVerb verb, String id, StateProtocolExclusive exclusiveAccess, Int32 extraFlags, Int32 timeout, Int32 lockCookie, Byte[] buf, Int32 cb, Int32 networkTimeout, SessionNDMakeRequestResults& results) +3251784
System.Web.SessionState.OutOfProcSessionStateStore.DoGet(HttpContext context, String id, StateProtocolExclusive exclusiveAccess, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actionFlags) +169
System.Web.SessionState.OutOfProcSessionStateStore.GetItemExclusive(HttpContext context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actionFlags) +26
System.Web.SessionState.SessionStateModule.GetSessionStateItem() +111
System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) +778
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +254
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +48
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +159
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3160.0

Я убедился, что служба состояний ASP.NET работает, что данные реестра точны, что брандмауэр полностью отключен, поэтому локальный порт не должен быть заблокирован и т. Д. Чточто еще можно сделать для проверки соединения с сервером состояний и что может происходить?

Я пытался переустановить Framework 4.5, но он уже был установлен, поэтому ничего не сделал.(Приложение использует Framework 4.5, кстати).
Я попробовал старые предложения по использованию aspnet_regiis, но это, очевидно, не было вариантом в более поздних версиях Framework.Я вижу вопрос, заданный несколько раз здесь и в других местах, но все они решаются с помощью шагов, которые я уже предпринял, поэтому я не уверен, куда идти отсюда.

Спасибо всемкто может помочь!

(Редактирование / добавление: я также установил AllowRemoteConnection на 1 в реестре. И я убедился, что служба, похоже, слушает:

C:\WINDOWS\system32>netstat -aon | find /i "42424"
  TCP    0.0.0.0:42424          0.0.0.0:0              LISTENING       4256
...