#vb.net #viewstate #remote-desktop
#vb.net #состояние просмотра #удаленный рабочий стол
Вопрос:
У меня был пользователь моего VB.net веб-приложение жалуется, что он продолжает получать прерывистое сообщение об ошибке, в результате чего он вылетает из системы.
Трассировка стека:
[FormatException: Invalid character in a Base-64 string.]
System.Convert.FromBase64String(Strings) 0
System.web. UI. LosFormatter.Deserialize(String input) 25
System.web. UI. Page. LoadPageStateFromPersistenceMedium() 101
[HttpException (0x80004005) : Invalid_Viewstate
Client IP: 127.0.0. 1
Port: 3491
User-Agent: Mozilla/4.0 (compatible: MSIE 7.0; windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET
ViewState: dDwxMZUZMDI3MTC203Q802w8aTwxPjS 02w8dDw7bDxpPDU 02 kBNj47aTw4PjtpPDEDPjtpPDE4PjtpPDIwPjtpPDIXPjtpPDM OPjtpPDM1PjtpPDM2PjtpI
Http-Referer: http ://localhost/<appname>/webForms/frmSystem.aspx?User=2amp;systemNo=22011Uamp;Zoom=1amp;Strips=6
Path: /<appname>/webForms/frmSystem.aspx.]
System.web. UI. Page. LoadPageStateFromPersistenceMedium() 442
System.web. UI. Page. LoadPageViewState() 18
System.web. UI. Page. ProcessRequestMain() 447
Из сообщения об ошибке следует, что viewstate продолжает повреждаться (см. Дамп экрана ниже), но я не понимаю, почему. Он утверждает, что это происходит каждые 2-3 минуты, но я часто пользовался системой и никогда с этим не сталкивался.
Я должен также упомянуть, что он использует веб-приложение очень «нестандартным» способом. Для достижения оптимальной скорости он фактически использует удаленный рабочий стол для прямого подключения к нашему серверу и запускает его как localhost. («Безумие!» — да, я знаю. Решение принимал не я.) Конечно, это может быть неуместно.
Некоторые советы о том, что может привести к повреждению viewstate, были бы чрезвычайно полезны.
Комментарии:
1. Вносите ли вы какие-либо изменения в viewstate в коде? Я видел, как это происходило раньше в такой ситуации.
2. Сбалансирована ли загрузка веб-приложения?
3. @mwgriffith: Нет, это не так. В любом случае, не специально.
4. @Joe: Нет, это не так. Но это действительно малое использование — например, 2 или 3 человека одновременно.
5. Почему этот вопрос был удален? Мне это кажется довольно ясным и хорошо объясненным.
Ответ №1:
Он дважды щелкает. То же самое долгое время сводило меня с ума, потому что я знаю, сколько раз нажимать на что-либо, и сам никогда не видел ошибки.