.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'或它的一个依赖项。系统找不到指定的文件。
我确实在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>