Пески "Недопустимый символ в строке Base-64."исключение - PullRequest
1 голос
/ 21 октября 2010

Недавно мое приложение получило тонны этих исключений.

Я запускаю ASP.net 3.5 на компьютере с Windows XP. Исключения обычно бывают случайными.

Приложение использует Telerik RadControls для ASP.NET AJAX Q2 2010 SP1.

Исключение и StackTrace приведены ниже.

Exception Type: System.FormatException
Message: Invalid character in a Base-64 string.
StackTrace:  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.SessionPageStatePersister.Load()

Есть идеи о том, что может быть причиной этого? Кроме того, это может или не может быть связано, часто страницы с приличным объемом данных (более 2 минут времени загрузки) время ожидания случайным образом. Я увеличил время ожидания для каждой из этих долго загружающихся страниц в web.config ...

<location path="mypage.aspx">
 <system.web>
  <httpRuntime executionTimeout="1920"/>
 </system.web>
</location>

Спасибо за любую помощь.

-Daniel

1 Ответ

0 голосов
/ 21 октября 2010

Посмотрите, перезапускается ли ваш пул приложений / веб-сайт по какой-либо причине (например, память или ограничение по времени).

Если ViewState не десериализован должным образом, проблема заключается в том, что ASP.NET не может его правильно расшифровать, или что-то изменило значение поля клиента ViewState на странице.Вы можете попробовать отключить шифрование в файле web.config:

<system.web>
 <pages viewStateEncryptionMode=”Never”>
 </pages>
</system.web>

По второй причине, возможно, брандмауэр или другая часть вашего проекта модифицирует ViewState.Проверьте, используете ли вы какой-либо код оптимизации, и попробуйте отключить его.

Наконец, вы можете попробовать отключить ViewState для некоторых элементов управления, которым он не нужен, чтобы уменьшить его размер, или вы можете попробовать использовать maxPageStateFieldLength свойство в web.config для разделения входных данных на несколько меньших.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...