2017-03-21 6 views
3

私はMVCアプリケーションのweb.configファイルに次のアセンブリ参照を持っている...継承セキュリティルール:「System.Net.Http.WebRequestHandler」

<dependentAssembly> 
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.0.0.0" /> 
</dependentAssembly> 

すべての私はインストール時またはアップデート任意のナゲットパッケージでは、バージョン番号は自動的に4.1.1.0に更新されます。しかし、これは私のアプリケーションを完全に破壊します。 'System.Net.Http.WebRequestHandler':それは種類によって違反エラー...

継承セキュリティルールを表示します。派生型は、基本型のセキュリティアクセシビリティに一致するか、アクセシビリティが低いものでなければなりません( )。

他の質問がありました。提案されている解決策は、バージョン番号をもう一度変更することです。しかし、これは特に満足のいくようではない。このモジュールの古いバージョンを常に使用しなければならないという根本的な問題があるはずです。私は適切な解決策を見つけようとしているのです。

これは実際に何が起こっているか知っていて、すべてのパッケージの推奨バージョンを使用して修正する正しい方法を知っていますか?

+0

System.Net.Httpバージョン4.3.1で元のバグが解決されました。[継承のsecルールがタイプによって違反しました: 'System.Net.Http.WebRequestHandler'。](// stackoverflow.com/a/42696376) –

答えて

1

解決策は私が予想したよりもはるかに簡単であることが判明しました。私はSystem.Net.Http参照をweb.configから完全に削除しましたが、正しく動作します。

2

このエラーがKeyVaultClientをインスタンス化しようとしました。私は、System.Net.Http v4.3.2のnugetパッケージをインストールすることで修正できました。

+0

これで問題が解決する可能性がありますが、原因を解決する代わりに隠れてしまいます。 –

+0

@TanveerBadar理由を説明できますか –

0

オプションで「バインディングリダイレクトの適用をスキップ」が選択されているかどうかを確認することもできます。

Visual Studioがチェックを外すと、結果としてweb.configファイルが更新されています。

0

System.Net.Httpバージョンの問題である必要があります。私はVS 2015でコードを実行しましたが、それはexcptionを投げた 次に、VS 2017でコードを実行しました。