Карта структуры сериализации объекта HttpSessionLifecycle - PullRequest
2 голосов
/ 25 августа 2011

Я использую StructureMap для хранения объекта сеанса:

config.For<SessionContext>().LifecycleIs(new HttpSessionLifecycle());

И все работает хорошо, поэтому я могу легко получить объект сеанса с помощью DI .

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

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

Как я могу решить эту проблему?

1 Ответ

3 голосов
/ 28 августа 2011

Проблема была в StructureMap. Я добавил атрибут [Serializable] в класс MainObjectCache и некоторые другие и протестировал его. Это работает сейчас. Исправление можно найти в этом запросе на извлечение.

Надеюсь, @ Джошуа Фланаган скоро объединит эти изменения с главной веткой, и проблема будет окончательно решена.

Edit:

Спасибо, я вытащил ваши изменения (и несколько других) и нажал 2.6.3 выпуск. Измените свой ответ, чтобы сказать, что это было исправлено в 2.6.3 и пометить его как принятый ответ. - Джошуа Фланаган

...