it-roy-ru.com

Состояние сеанса можно использовать только в том случае, если для свойства enableSessionState установлено значение true

Я НЕ использую MVC, перезапись URL-адреса, пользовательские модули HTTP и т.д. При базовом вызове свойства Session отключается либо от веб-страницы, унаследованной System.Web.UI.Page, либо через System.Web.HttpContext.Current.Session. получить следующую ошибку:

Состояние сеанса может использоваться, только если для enableSessionState задано значение true, либо в файле конфигурации, либо в директиве Page. Также убедитесь, что модуль System.Web.SessionStateModule или пользовательский модуль состояния сеанса включен в раздел <configuration>\<system.web>\<httpModules> в конфигурации приложения.

Проведя некоторые исследования, я реализовал Web.config следующим образом, но ошибка по-прежнему возникает. Я отлаживаю веб-приложение из Visual Studio 2010 с помощью встроенного веб-сервера.

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <sessionState mode="InProc" timeout="60" cookieless="false" />
        <pages enableSessionState="true" />
        <httpModules>
            <remove name="Session" />
            <add name="Session" type="System.Web.SessionState.SessionStateModule" />
        </httpModules>
    </system.web>
</configuration>
6
user786423

Ваша проблема проста. Если вы перенесете свой код из места, которое выполняется после глобального события Session_Start, то вы увидите, что эта проблема проходит довольно комфортно. В качестве примера напишите свой код в событии Page_Init или переопределите OnInit и делайте все, что вы хотите сделать со своей сессией.

Надеюсь, это сработает для вас.

3
user1624372

Я потратил много времени на отладку этой проблемы. Наш сайт работает нормально до вчерашнего дня и вдруг перестал работать с ошибкой.

Состояние сеанса может использоваться, только если для enableSessionState задано значение true, либо в файле конфигурации, либо в директиве Page. Также убедитесь, что System.Web.SessionStateModule или пользовательский модуль состояния сеанса включены в раздел \\ в конфигурации приложения.

При проверке ASP.net State Service отсутствует в списке сервисов.

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

C:\Windows\Microsoft.Net\Framework64\v4.0.30319\aspnet_regiis -i

1
jtirumani

Эта проблема воспроизводится в моих известных сценариях ....

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

ОБНОВЛЕНИЕ: Для всех, кто страдает от этой проблемы, у меня есть свои выводы здесь! 1. Я мог бы воспроизвести эту проблему в браузере IE (IE10) и FIREFOX (22), хотя у меня есть отличные настройки всех включенных..etc.etc ... в моем локальном коде, КОГДА IE настройки во вкладке Connection -> настройки локальной сети имеют флажок "Использовать PROXY Server for Localhost ...", отмеченный как ПРОВЕРЕНО - без настройки VALID PROXY server ...

Когда я снимаю флажок в IE, тот же код с настройками сеанса DEFAULT запускается как HORSE !!

Надеюсь, что это даст немного света,

Спасибо

0
HydPhani