Невозможно сериализовать состояние сеанса с помощью jqGrid при экспорте в Excel - PullRequest
0 голосов
/ 27 января 2012

Я использую элемент управления jqGrid в приложении ASP.NET. Функция экспорта в Excel доставляет мне неприятности. Код поступает в среду с балансировкой нагрузки, поэтому я сохраняю состояние сеанса в SQL. Для этого требуется, чтобы все, что сбрасывалось в сеанс, было сериализовано. Может кто-нибудь помочь мне определить, как обойти это?

Здесь взрывается:

if (JQGrid.AjaxCallBackMode! = AjaxCallBackMode.None)
{
// сохранить последнее состояние сетки в сеансе - будет использоваться для экспорта
Session ["gridFilterPageState"] = JQGrid.GetState ();
} * +1010 *

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

1 Ответ

0 голосов
/ 27 января 2012

Задумывались ли вы о решении, в котором вы помещаете свое состояние в глобальный общий объект, идентифицируемый идентификатором, и сохраняете свой идентификатор в состоянии сеанса?Конечно, вам придется иметь дело с некоторыми блокировками, но если я не могу сериализовать что-то, но мне нужно это для запросов только для ОДНОГО пользователя, я делаю общий держатель, некоторый словарь (ID, OBJECT) или что-то еще и сохраняю ID всессия.

...