SessionStateTempDataProvider требует, чтобы SessionState был включен.

Привет, я получаю сообщение об ошибке: «SessionStateTempDataProvider требует, чтобы SessionState был включен». когда я пытаюсь обработать ошибку. я получил фрагмент кода из блога ниже. http://blogs.microsoft.co.il/blogs/shay/archive/2009/03/06/real-world-error-hadnling-in-asp-net-mvc-rc2.aspx Я не использую сеанс. состояние моего сеанса отключено в web.config.

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


person nimi    schedule 23.10.2009    source источник
comment
Код. Нам нужно увидеть код, вызывающий ошибку.   -  person Çağdaş Tekin    schedule 23.10.2009
comment
Код, который я использую, взят из этого блога. blogs.microsoft.co.il/blogs/shay/archive/2009/03/06/   -  person nimi    schedule 23.10.2009
comment
Образец проекта, прикрепленный к этому сообщению в блоге, у меня отлично сработал. Вы что-нибудь изменили в этом проекте?   -  person Çağdaş Tekin    schedule 23.10.2009
comment
нет .. я не загружал образец проекта в блоге. что я сделал, так это то, что я просто скопировал и вставил содержимое из блога. Application_Error, и я создал ErrorController.cs и вставил соответствующие коды.   -  person nimi    schedule 23.10.2009
comment
Возможный дубликат: stackoverflow.com/questions/884852/   -  person Daniel Schaffer    schedule 30.04.2010


Ответы (2)


состояние моего сеанса отключено в web.config.

Это должно быть причиной проблемы. Очевидно, ASP.NET MVC необходимо состояние сеанса.

Отметьте этот вопрос об отключении состояния сеанса.

person Çağdaş Tekin    schedule 23.10.2009
comment
извините за мое утверждение, состояние моего сеанса отключено в web.config, я не устанавливаю ‹sessionState mode = Off /› в моем web.config. Я попытался найти текст, но не нашел. - person nimi; 23.10.2009
comment
@Nimesh, это должно быть связано с отключением SessionState. Потому что это единственный способ воспроизвести ошибку. Кроме того, это то, что предлагает сообщение об ошибке. - person Çağdaş Tekin; 23.10.2009
comment
да, я согласен с твоей точкой зрения. но я не могу это извлечь. есть ли другие способы обработки ошибок? - person nimi; 23.10.2009
comment
Конечно. Базовый контроллер имеет виртуальный метод HandleUnknownAction. Вы можете иметь свой собственный базовый контроллер, производный от класса Controller, и обрабатывать там ошибки 404. У вас также может быть свой собственный атрибут HandleError для обработки ошибок, возникающих в контроллерах / действиях. Пример: stackoverflow.com/questions/766610/ - person Çağdaş Tekin; 23.10.2009

Проверьте приведенный ниже код:

https://github.com/NuGet/NuGetGallery/blob/master/src/NuGetGallery/Infrastructure/CookieTempDataProvider.cs

Он действует так же, как TempDataProvider по умолчанию, но вместо этого использует файлы cookie. Если вы не переносите конфиденциальные данные с помощью TempData, это может помочь.

person tugberk    schedule 17.01.2012