2016-12-13 16 views
2

クライアントの1人がタイトルに記載されているエラーに直面しているので、.NET Framework 4.5を確認しました。 2がインストールされたら、アンインストールして再度インストールしました。マシンがWindows Server 2012 R2 この問題をさらに分析すると、.NET Frameworkのメインアセンブリであるmscorlib.dllにSystem.Security.Claims名前空間が存在することが判明しました。メソッドが見つかりません: 'Void System.Security.Claims.ClaimIdentity..ctor(System.Security.Claims.ClaimIdentity)'

この問題に直面しているため、解決方法が不明です。 このエラーが発生するWebアプリケーションは.NET Framework 4.5.2にあり、フォーム認証を使用するASP.NET Webフォームアプリケーションです。 ログインページが表示されますが、ユーザ名/パスワードを入力するとこのエラーが発生します。

ご協力いただきありがとうございます。

アヌラーグ

答えて

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.5.2バージョンをサポートしていると考えました。また、ClaimsIdentityのコンストラクタを明示的に呼び出すのではなく、内部的に呼び出されている可能性があります。 – anuragsji

+0

こんにちはマーク、この事件についてもう少し明るいのであれば幸いです。私たちはこれに苦労していますが、分かりません。私が前に述べたように、明示的にコンストラクタを使用するのではなくフォーム認証を使用しています – anuragsji

0

あなたのコメントの1つでMarcの答えに言及したように、.NET 4.6.1から.NET 4.5.2へのロールバックが完全に完了していないとこのエラーが発生する可能性があります。 Windows Update KB3102467をアンインストールしてWindows Server 2012 R2の.NET 4.6.1からロールバックした後、このエラーメッセージが表示されました。 Windows Updateを再インストールすると、エラーが解決されました。

hereまたはhereの手順を繰り返して、.NET 4.5.2をより完全に復元しようと試みることができます。 this postに記載されている.NET Framework修復ツールまたはクリーンアップツールを使用することもできます。

これらの手順をすべて実行したにもかかわらずこのエラーが発生したため、.NET 4.6.1にアップグレードするのがより簡単で迅速でした。

関連する問題