违反类型的继承安全规则:' System.Net.Http.WebRequestHandler'

时间:2017-03-21 21:52:53

标签: asp.net-mvc web-config

我在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 ;.派生类型必须匹配   基本类型的安全可访问性或不太容易访问。

我发现了其他问题,建议的解决方案是再次更改版本号。然而,这似乎并不特别令人满意。必须存在一些潜在的问题,导致我必须始终使用此模块的旧版本。我试图找到一个合适的解决方案,而不是只是不断地将其破解以使其发挥作用。

有没有人知道究竟是什么导致了这种情况,并且知道使用推荐版本的所有软件包修复它的正确方法吗?

4 个答案:

答案 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中运行了我的代码,它运行了。