Повреждение Viewstate с помощью веб-тестов производительности VS2010

При запуске одного из моих веб-тестов производительности Visual Studio я заметил периодические исключения при попытке декодирования состояния просмотра:

Сообщение: недопустимая длина для массива символов Base-64.

Стек вызовов: в System.Convert.FromBase64String (String s) в System.Web.UI.ObjectStateFormatter.Deserialize (String inputString) в System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter .Deserialize (String serializedState) в System.Web.UI.Util.DeserializeWithAssert (форматировщик IStateFormatter, String serializedState) в System.Web.UI.HiddenFieldPageStatePersister.Load ()

Это происходит только в одном тесте в одном месте. Проведя небольшое исследование, я заметил, что состояние просмотра, отправленное клиентом, и состояние просмотра, полученное сервером, различались только тем, что все символы плюса (+) стали пробелами ().

Чем это вызвано?


person J. Polfer    schedule 28.03.2012    source источник


Ответы (1)


ASP.NET ожидает, что скрытое поле формы _VIEWSTATE закодировано в URL-адресе до того, как достигнет сервера. Когда ASP.NET получает запрос, он декодирует URL-адрес параметра _VIEWSTATE, который, как известно, превращает плюсы в пробелы.

Установка для свойства Кодирования URL значения true в _VIEWSTATE поле скрытой формы в веб-тесте вызвала устранение ошибки.

person J. Polfer    schedule 28.03.2012