【问题标题】:Inheritance security rules violated by type: 'System.Net.Http.WebRequestHandler'类型违反的继承安全规则:'System.Net.Http.WebRequestHandler'
【发布时间】:2017-03-21 21:52:52
【问题描述】:

我在 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。然而,这完全破坏了我的应用程序。它显示错误...

类型违反了继承安全规则: 'System.Net.Http.WebRequestHandler'。派生类型必须匹配 基类型的安全可访问性或难以访问。

我发现了其他问题,建议的解决方案是再次更改版本号。然而,这似乎并不特别令人满意。一定有一些潜在的问题导致我不得不总是使用这个模块的旧版本。我正在尝试找到一个合适的解决方案,而不是不断地破解它以使其工作。

有谁知道这个问题的真正原因,并且知道使用所有软件包的推荐版本来修复它的正确方法吗?

【问题讨论】:

标签: asp.net-mvc web-config


【解决方案1】:

我在尝试实例化 KeyVaultClient 时看到此错误。我可以通过安装 nuget 包 System.Net.Http v4.3.2 来修复它。

【讨论】:

  • 虽然这可能会解决遇到的问题,但它通过隐藏它而不是解决原因来做到这一点。
  • @TanveerBadar 你能解释一下为什么
【解决方案2】:

结果证明解决方案比我预期的要简单得多。我从 web.config 中完全删除了 System.Net.Http 引用,现在它可以正常工作了。

【讨论】:

    【解决方案3】:

    一定是 System.Net.Http 版本问题。我在 VS 2015 中运行了我的代码,它抛出了异常 然后,我在 VS 2017 中运行了我的代码,它成功了。

    【讨论】:

      【解决方案4】:

      您还可以验证您是否在选项中选中了“跳过应用绑定重定向”。

      如果未选中,Visual Studio 将更新您的 web.config 文件。

      【讨论】:

        猜你喜欢
        • 2021-05-16
        • 2018-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-03
        • 1970-01-01
        • 2014-02-28
        • 1970-01-01
        相关资源
        最近更新 更多