2016-12-13 11 views
2

Один из наших клиентов сталкивается с ошибкой, как упоминалось в заголовке, мы подтвердили, что .NET Framework 4.5. 2, мы удалили его и снова установили. Аппарат Windows Server 2012 R2 Дальнейший анализ этой проблемы показал, что пространство имен System.Security.Claims существует в mscorlib.dll, который является основной сборкой для платформы .NET.Метод не найден: 'Void System.Security.Claims.ClaimIdentity..ctor (System.Security.Claims.ClaimIdentity)'

Не знаете, как решить проблему, поскольку она уже давно сталкивается с этой проблемой. Веб-приложение, к которому эта ошибка подходит, относится к платформе .NET Framework 4.5.2, и это приложение веб-формы ASP.NET, которое использует проверку подлинности. Отображается страница входа в систему, но при указании имени пользователя/пароля эта ошибка появляется.

Заранее за вашу помощь.

Анураг

ответ

2

Тип ClaimsIdentity доступен с .NET 4.5 (смотрите раздел "Информация о версии" here); однако , что конструктор был доступен только с .NET 4.6 (см. «Информация о версии» here). Итак: либо используйте другой конструктор, либо зависеть от .NET 4.6 - ваш текущий .NET 4.5.2 недостаточен.

+0

Hey Marc, спасибо за этот ввод, – anuragsji

+0

Hey Marc, Спасибо за этот ввод, я думаю, что ранее в Windows 2012 Server R2 у клиента был установлен 4.6.1, но они удалили его по мере появления этой проблемы и установили 4.52 как мы думали, что наше приложение поддерживает версию 4.5.2. Также мы явно не вызываем конструктор ClaimsIdentity, возможно, он называется внутренне. – anuragsji

+0

Привет, Марк, оцените, если у вас есть еще свет на этот случай. Мы боремся с этим, но понятия не имеем. Как я сказал ранее, мы явно не используем конструктор, но используем аутентификацию по форме. – anuragsji

0

Как вы упомянули в одном из своих комментариев к ответу Марка, эта ошибка может быть вызвана, если откат от .NET 4.6.1 до .NET 4.5.2 не выполнен полностью. Я получил сообщение об ошибке после отката от .NET 4.6.1 на Windows Server 2012 R2, удалив Windows Update KB3102467. Когда я переустановил обновление Windows, ошибка была устранена.

Вы можете попробовать повторить описанные шаги here или here, чтобы попытаться восстановить .NET 4.5.2 более совершенным образом. Вы также можете попытаться использовать инструменты восстановления или очистки .NET Framework, упомянутые в this post.

Я выполнил все эти шаги и по-прежнему испытывал эту ошибку, поэтому решил, что было проще и быстрее обновиться до .NET 4.6.1.