我在MVC应用程序的web.config中有以下程序集引用...
<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>
每次安装或更新任何nuget包时,版本号都会自动更新为4.1.1.0。然而,这完全打破了我的申请。它显示错误...
类型违反的继承安全规则: &#39; System.Net.Http.WebRequestHandler&#39 ;.派生类型必须匹配 基本类型的安全可访问性或不太容易访问。
我发现了其他问题,建议的解决方案是再次更改版本号。然而,这似乎并不特别令人满意。必须存在一些潜在的问题,导致我必须始终使用此模块的旧版本。我试图找到一个合适的解决方案,而不是只是不断地将其破解以使其发挥作用。
有没有人知道究竟是什么导致了这种情况,并且知道使用推荐版本的所有软件包修复它的正确方法吗?
答案 0 :(得分:3)
我在尝试实例化KeyVaultClient时看到了这个错误。我能够通过安装nuget包System.Net.Http v4.3.2来修复它。
答案 1 :(得分:2)
解决方案比我预期的要简单得多。我完全从web.config中删除了System.Net.Http引用,现在它可以正常工作。
答案 2 :(得分:0)
您还可以验证是否有#34;跳过应用绑定重定向&#34;检查了你的选择。
如果未选中,Visual Studio将更新您的web.config文件。
答案 3 :(得分:0)
它必须是System.Net.Http版本问题。我在VS 2015中运行了我的代码,它引发了激动 然后,我在VS 2017中运行了我的代码,它运行了。