Невозможно сериализовать состояние сеанса, связанное с System.Data.Linq. EntitySet
В последнее время я играю с Windows Server 2008 и хотел бы сделать некоторые настройки для моего веб-приложения. Я изменил состояние сеанса для моего приложения на "State Server", чтобы оно могло использовать больше рабочих процессов (теперь оно установлено на 4).
После этого я получаю эту ошибку при попытке войти в приложение.
Невозможно сериализовать состояние сеанса. В режимах "StateServer" и "SQLServer" ASP.NET сериализует объекты состояния сеанса, и в результате несериализуемые объекты или объекты MarshalByRef не допускаются. То же ограничение применяется, если аналогичная сериализация выполняется в пользовательском хранилище состояний сеанса в режиме "Пользовательский".
Я подозреваю, что это связано с EntitySet, который я объявил, потому что я вижу это в трассировке стека, когда происходит ошибка:
[SerializationException: Тип 'System.Data.Linq.EntityRef`1[[CtcSystem.Domain.Entities.Account.Account, CtcSystem.Domain, Version=1.0.0.0, Culture= нейтральный, PublicKeyToken=null]]' в сборке 'Система.Data.Linq, версия =4.0.0.0, культура = нейтральная, PublicKeyToken=b77a5c561934e089'не помечена как сериализуемая.]
Я использовал тег [Serializable] в своих классах, поэтому есть ли способ сделать сериализуемый EntitySet таким образом, чтобы приложение могло работать на State Server?
Спасибо
1 ответ
Лучший способ - реализовать интерфейс ISerializable в частичном классе...