.NET在生成类型';时加载以查找程序集的另一个版本;s用于WCF服务

本文关键字:另一个 程序集 版本 服务 WCF 用于 查找 加载 类型 NET | 更新日期: 2023-09-27 17:57:53

我在Visual Studio 2013中尝试向ASP.NET web应用程序添加服务引用时遇到此错误。我在项目中引用了Microsoft.Owin.Security 2.1.0.0版本。但我很沮丧他为什么要找2.0.1.0版本?

无法导入wsdl:portType详细信息:在运行WSDL导入扩展:System.ServiceModel.Description.DataContractSerializerMessageContractImporter错误:无法加载文件或程序集"Microsoft.Owin.Security,Version=2.0.1.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或它的一个依赖项。系统找不到指定的文件。

.NET在生成类型';时加载以查找程序集的另一个版本;s用于WCF服务

我确实在Hélder Gonçalves版本中找到并发布了一个可能的解决方案。希望它将允许您生成服务引用,而无需重定向到旧版本的Microsoft.Owin.Security程序集。请告诉我这是否适合你。

根据Rizier123的建议,以下是我的解决方案全文:

逐字逐句地出现了完全相同的错误,并且能够通过指定要重用来自哪些程序集的类型来解决该错误。

添加服务引用时,单击高级添加服务引用窗口左下角的strong>按钮。在出现的服务引用设置屏幕上,在数据类型部分的Reuse Types in all referenced assembly:复选框下,选择Reuse Types in specified Reference assembly单选按钮,然后仅选中包含服务使用的类型的程序集。这应该可以解决问题。

实际安装和引用的程序集版本因各种因素而异。无论如何,您可以将绑定重定向到所需的版本。指此链接

在您的情况下,您必须将以下行添加到configuration 下的web.config

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="'Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
      <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.0.1.0"/>
    </dependentAssembly>
    </assemblyBinding>
</runtime>