К сожалению, это не ответ. После того, как я какое-то время сталкивался с неустойчивой ошибкой и, наконец, был достаточно раздражен, чтобы попытаться ее исправить, мне еще предстоит найти исправление. Однако я определил рецепт воспроизведения своей проблемы, который может помочь другим.
В моем случае это единственная проблема на локальном хосте, на моей машине разработчика, на которой также есть база данных приложения. Это приложение .NET 2.0, которое я редактирую с помощью VS2005. На 64-битной машине Win7 также установлены VS2008 и .NET 3.5.
Вот что генерирует ошибку из множества форм:
- Загрузите свежую копию формы.
- Введите некоторые данные и / или выполните обратную передачу с помощью любого из элементов управления формы. Пока нет значительной задержки, повторяйте все, что вам нравится, и никаких ошибок не происходит.
- Подождите немного (возможно, 1 или 2 минуты, но не более 5) и попробуйте другой постбэк.
Минута или две задержки "ожидание локального узла", а затем "Соединение было сброшено" браузером и журналы ловушек ошибок приложения global.asax
:
Application_Error event: Invalid length for a Base-64 char array.
Stack Trace:
at System.Convert.FromBase64String(String s)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)
at System.Web.UI.HiddenFieldPageStatePersister.Load()
В данном случае, это не РАЗМЕР состояния представления, но что-то, связанное с кэшированием страницы и / или состояния представления, которое, кажется, кусает меня. Установка <pages>
параметров enableEventValidation="false"
и viewStateEncryption="Never"
в Web.config
не изменила поведение. Также не было установки maxPageStateFieldLength
на что-то скромное.