Валидация MAC состояния представления не выполнена в среде с одним сервером - PullRequest
0 голосов
/ 12 июня 2019

Недавно перенес наше веб-приложение .net 4.0 в .net 4.7.2. Настройка среды разработки, и это не сценарий веб-фермы. Ключ машины также не генерируется автоматически. Нажмите кнопку «Ошибка проверки MAC-адреса состояния представления» при нажатии кнопки страницы входа. Проверка подлинности MAC всегда не выполняется в IE и Chrome только один или два раза в день.

Web.config:

<machineKey decryptionKey="F4B786E157C86740A610D....ghfghhgfh3F5C69,IsolateApps" validationKey="80DAFD9....3hgfhgfAC1CDD71B66820B664160337A4C6179C6C1480C8DA6EFD3C17D34B7BCE11A4ED8C02DD0F...3EC5556C4029084A8871,IsolateApps" validation="AES"/>

Попробовал следующее;

  1. убрал тег действия в форме
  2. отключил macValidation в web.config
  3. регенерировал машинный ключ
  4. в пуле приложений установите для параметра «Ограничение виртуальной памяти» значение 0, а для параметра «Загрузить профиль пользователя» - значение true

но не повезло.

Ошибка:

An unexpected error has occurred on this page and it has been logged. Please feel free to contact us with the information listed below:

GUID: feee9d30-5c42-4130-ad8b-174c14ba9dad

Machine Name Date URL 
ZZZ 12/Jun/2019 16:15:22 http://ZZZ:8080/UserManagement/Login.aspx 
-------------------------------------
Error Message : Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. See http://go.microsoft.com/fwlink/?LinkID=314055 for more information.

Source : System.Web

Target Method: Void ThrowError(System.Exception, System.String, System.String, Boolean)

Stack Trace : at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString, Purpose purpose) at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter2 formatter, String serializedState, Purpose purpose) at System.Web.UI.HiddenFieldPageStatePersister.Load() at System.Web.UI.Page.LoadPageStateFromPersistenceMedium() at System.Web.UI.Page.LoadAllState() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

-------------------------------------
Error Message : Invalid viewstate. Client IP: nn.nmn.nn.nn Port: 56640 Referer: http://ZZZ:8080/UserManagement/Login.aspx Path: /UserManagement/Login.aspx User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) ViewState: N9AFLjJRk5zRjomBHUnBhKTyeeYZgPslJ2437+N8XNzq3+7stdsP1XrS7CU94lXL8m7fvnx50FxdNnBBD2q4Z3HIwMhvup84vACt8nRedbvA/9iTx22OHG00rTvNu3jVRe5KHZXbZI6mK1EULS62LJ0N1eDYe+cZ9KdN80EeMiwvJSeSNKipb+JFPdLVoBtDRs3I7FOcNcEN5MSS6vriyquXN8x6xwRF8zkm4Q7g1KL827Nhu1DGwuF9rd2UYL923eMv5ChZmgnyLFZHoj+QvvMo73NfeTilhM8wuUvex0uCmR/oK4cdq3gUPdwxTPsCbWarFwOJr17nTwVeFFKrdudAZwIPVmvJWqCcBP3wWChSG/7gh0MQu+LOWJ80WL8IeM5CAT4cF8toDzsnHrsEoDuXwksB65Lz741ATcE2l8PUFwrMLnRCXEVKfv8Mz/ohGRuOih2fbM19RviuGvpjPc6Z+8nbh3OjFiAbj7vAvWXXV2cbxXpHUnH25RdiFBtkzQx6DJKGg4uRLDXYEBygOlPB4gk+hj3Ld8mKcnWap3WHj6GMibDdh9IbXEwMDDk6magEnPIrfClJM8YlWxd6mDShhxKJH1CQZvpC9KYMghzBt4KM/WtmGZ3fK9Aihtf9oX3W4HY45yAvSGsAMa27b74P8kY=

1 Ответ

0 голосов
/ 14 июня 2019

Ниже приведены причины ошибок проверки MAC:

1.Если ваше приложение работает в ферме (многосерверная среда)

Разрешение:

  • включить сходство в балансировщике нагрузки

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

Разрешение:

  • Используйте утилиту aspnet_regiis
  • Создать явный элемент

3. Ваш пул приложений установлен как LoadUserProfile = false

разрешение:

  • Выберите пул приложений-> перейдите к расширенной настройке-> Установить LoadUserProfile = true

enter image description here

4.Свойство Page.ViewStateUserKey имеет неверное значение

Разрешение:

  • Убедитесь, что ViewStateUserKey установлен правильно

Более подробное решение вы можете найти в статье Microsoft: Устранение ошибок кода проверки подлинности сообщения о состоянии (MAC)

С уважением, Jalpa

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