У меня очень мало возможностей для продолжения. Я не могу воспроизвести это локально, но когда пользователи получают сообщение об ошибке я получаю автоматическое уведомление по электронной почте исключения:Что вызывает «Недопустимая длина для массива символов Base-64»
Invalid length for a Base-64 char array.
at System.Convert.FromBase64String(String s)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)
at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)
at System.Web.UI.HiddenFieldPageStatePersister.Load()
Я склонен думать, что есть проблема с данными, которые назначаются на ViewState. Например:
List<int> SelectedActionIDList = GetSelectedActionIDList();
ViewState["_SelectedActionIDList"] = SelectedActionIDList;
Трудно угадать причину ошибки, не будучи в состоянии воспроизвести ошибку локально.
Если у кого-то был опыт с этой ошибкой, мне бы очень хотелось узнать, что вы узнали.
Я скопировал страницу страницы и вложил ее в Word. Это было более 86000 символов. Это похоже на слишком много. – Slim
Yikes, теперь я сталкиваюсь с проблемой. Я отключил ViewState для всех элементов управления, которые, возможно, могу. Я использую элемент управления Wizard с несколькими страницами и большим количеством контента. Любой совет? –
@Mike C., это очень неприятная проблема! Вы можете разбить содержимое каждой страницы мастера на пользовательские элементы управления и загрузить контент по требованию (через ajax?). Конечно, это только решение для одной страницы, если вы начинаете испытывать проблему на постоянной основе, вы можете захотеть сохранить хранилище в вашей базе данных. Я обновил свой ответ со ссылками на хранилище viewstate в SQL Server. –