Проверка ASP.NET Viewstate - ASP.NET 1.1 против ASP.NET 3.5 - PullRequest
1 голос
/ 17 декабря 2008

мы находимся в процессе миграции нашего веб-приложения с ASP.NET 1.1 на ASP.NET 3.5. Наше приложение работает на нескольких серверах с помощью циклического перебора DNS, поэтому каждый запрос браузера может оказаться на другом сервере. У нас есть web.config для предотвращения ошибок валидации.

Однако наш план состоял в том, чтобы переносить по одному серверу за раз. Теперь это выглядит, когда пользователь загружает страницу на 1.1. сервер и затем страница заканчивается на сервере 3.5 при обратной передаче, проверка состояния представления завершается неудачей.

Мне не удалось найти что-либо в Интернете по этому вопросу - я просто предполагаю, что проверка состояния представления несовместима между 1.1. и 3.5, то есть состояние просмотра, сгенерированное 1.1, не будет проверяться на 3.5 даже при том же ключе machineKey, и наоборот.

Кто-нибудь может подтвердить это подозрение?

Спасибо

Ответы [ 3 ]

1 голос
/ 17 декабря 2008

Используйте липкие сессии, как упомянуто в этом аналогичном посте . Это будет держать пользователей на одной машине некоторое время.

Я не думаю, что было бы разумно разрешить одному пользователю использовать три разные версии фреймворка за один сеанс.

0 голосов
/ 17 декабря 2008

Я считаю, что 1.1 и 2.0 используют разные алгоритмы шифрования по умолчанию для состояния просмотра. По умолчанию для 1.1 был 3DES, и я считаю, что для 2.0 это был SHA1 (хотя я не могу найти документацию, подтверждающую это на данный момент). Попробуйте установить проверку на ключе вашего компьютера в 3DES на новом сервере и посмотрите, решит ли это проблему.

<machineKey validation="3DES">
0 голосов
/ 17 декабря 2008

Вы используете IIS7 для хоста 3.5? Я столкнулся с множеством проблем, когда ViewState запустил приложение 1.1 на IIS7. Правильно запустить приложение 1.1 на IIS7 достаточно сложно, не говоря уже о том, чтобы пытаться разбираться в нескольких версиях платформы. Самое большое, с чем я столкнулся, это то, что ViewState шифруется или управляется иначе, чем предыдущая версия IIS. Если вы попытаетесь настроить weg-garden на 1.1, вы получите все виды ошибок шифрования ViewState. Вы не можете настроить веб-сад (иметь несколько рабочих потоков) в приложении 1.1 на IIS7. По крайней мере, из моего опыта.

...