недопустимые объекты сеанса sharepoint - PullRequest
0 голосов
/ 26 ноября 2009

Хорошо, я новичок в SharePoint и ASP, так что терпите меня ...

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

Но если я пытаюсь сохранить экземпляр объекта, для которого я определяю класс, я получаю сообщение об ошибке «Произошла непредвиденная ошибка», даже если я могу выполнить программу без каких-либо ошибок.

Что мне нужно сделать, чтобы сохранить мои объекты в массиве сеансов?


Edit:

Таким образом, после запуска стека вызовов, как было предложено, я получаю следующую ошибку:

Невозможно сериализовать состояние сеанса. В режимах «StateServer» и «SQLServer» ASP.NET будет сериализовать сеанс государственные объекты, и в результате несериализуемые объекты или Объекты MarshalByRef не являются разрешенный. Такое же ограничение применяется, если аналогичная сериализация сделано пользовательским хранилищем состояний сеанса в режиме «Пользовательский».

Полагаю, я мог бы сериализовать свои объекты ... есть ли параметр в файле конфигурации, чтобы он не требовал SQL Server?

Ответы [ 2 ]

2 голосов
/ 26 ноября 2009

Пометьте свой пользовательский класс атрибутом [Serializeable]. Если в вашем классе есть поля, которые являются ссылками на другие пользовательские классы, убедитесь, что они также имеют атрибут [Serializeable]

0 голосов
/ 26 ноября 2009

Включен ли HttpModule сеанса SharePoint в файле web.config?

<add name="Session" type="System.Web.SessionState.SessionStateModule"/>

если вы установите Callstack = "true" в своем файле web.config, вы, вероятно, увидите "[Причина ошибки], потому что состояние сеанса отключено"

...