Ситуация:"Валидация ViewState MAC не удалось" с Kentico 7.0 и IIS 7.5
Мы 2 Вебсервер IIS7.5 которые работают loadbalanced (программное обеспечение, стандартная установка) каркас 4,5 установлен
У нас есть установка Kentico 7.0 на обоих серверах.
Проблема:
Нагрузка сайта нормально, но когда я изменить к CMSDesk и попытаться войти в систему (с IE8), я получаю сообщение об ошибке (очень быстро нет, даже второй):
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
Eventlog
Event code: 4009
Event message: Viewstate verification failed. Reason: The viewstate supplied failed integrity check.
с Chrome 27+ это занимает около 3-4 секунд, но появляется CMSDesk (только иногда появляется ошибка, я могу» t сказать, когда?!). Вот почему я могу исключить проблему IE8
Теперь это становится действительно жутким, , даже если я выйду на сервер из Loadbalancer!
Что я пробовал:(Все эти эксперименты я пробовал в различных комбинациях)
0) гуглом, как сумасшедшие, переработанные в AppPool и очистить кэш. ОСНОВЫ
1) Установите MachineKey элемент в
machine.config's (rebooted the servers afterwards)
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\config\machine.config
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\config\machine.config
%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\config\machine.config
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\config\machine.config
Example Code (in all Files the SAME KEYS)
<system.web>
<machineKey validationKey="EEF33150A048D162D22CB36E1CB9956B148C7A4E6999D0F05B53D416D7A16F83823DD626F501DD3549D3E5DCB473634739D0AD9A07F71560946498C943A7586D"
decryptionKey="0E95F75864047EB6322EA7D5246F2C1175D77A1B016F293C3BAAD000299A3DC8"
validation="SHA1"
decryption="AES" />
</system.web>
Результат: Ошибка же
2) я даже установить его в WebConfig (просто чтобы быть уверенным).
Результат: Ошибка же
3) я установить атрибут enableViewStateMac на страницах-элемента в Web.config к ложным (просто чтобы увидеть, если это работает, я не являюсь фанатом дыр в безопасности)
Результат: нет Ошибка, но я остался на странице входа. и в журнале kentico-event было успешное сообщение auth. хмм ?! Итак, я вернул его в true, чтобы быть БЕЗОПАСНЫМ ;-) Другие решения Securityhole, такие как auth никогда и т. Д., Я даже не пытался, так как это должна быть страница сохранения.
4) я проверил, если страница действительно загружается укомплектовать (так как в некоторых Форума было отмечено, что если страница не укомплектовать загрузить это может нарушить ViewState и проверка не работал бы)
Результат: тот же Ошибка
5) Я попробовал «Небезопасное» временное решение Kentico, установив атрибут в Интернете.конфигурации/настроек раздела
<add key="CMSUseViewStateUserKey" value="false"/>
Результат: То же самое, по номеру 3
6) я даже заглянул в «опережения загрузчика ошибка в IE8», но это должно быть исправлено с KB980182 и я установил (Да я хватался за соломинку сейчас)
JUST ВЫГЛЯДЕЛА
7) ViewState не кажется слишком долго, из-за того, что это всего лишь Войти Ф.О. гт
JUST ВЫГЛЯДЕЛА
8) Вызывается один сервер непосредственно без кластера IP-Адрес
Результат: Это работает. (YEY)
-> Вся эта информация несколько сбивает с толку для меня и как я могу заставить Кластер работать?
*) Chrome работает на 90 - 99% с Кластер/с на сервере в кластере/на сервере непосредственно
*) IE 8 не работает с Кластер
*) IE 8 Безразлично «т работает с кластером только с одним сервером
*) IE 8 работает непосредственно на сервере
Conlusion до сих пор:
*) Это может быть ошибка IE8
*) Это может быть что-то с балансировкой нагрузки, кластером или доменным именем (я думаю).
*) Я должен отказаться от Chrome/ошибка из-за того, что в настоящее время я не могу воспроизвести больше
*) в связи с пунктом 3 Это должно быть что-то с помощью функции MAC (http://support.microsoft.com/)
I был бы благодарен за любой ввод/указатель/...
Пс: пожалуйста, не беспокойтесь, это мой первый вопрос.
После получения этой ошибки и нескольких поисков в Интернете этот пост, наконец, исправил нашу проблему. Мы удалили знак подчеркивания, и он снова начал работать. – Chris