尝试在Visual Studio 2012中向ASP.NET MVC 5 Web应用程序添加服务引用时出现以下错误。我已在项目中引用了Microsoft.Owin.Security版本3.0.0.0。我还应该添加2.0.1.0版本吗?
Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter
Error: Could not load file or assembly 'Microsoft.Owin.Security, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IMyService']
这个人here有类似的问题,但没有人回答..
答案 0 :(得分:10)
具有完全相同的错误,并且能够通过指定要重用类型的程序集来解决它。
添加服务参考时,请点击添加服务参考窗口左下角的高级... 按钮。在显示的服务参考设置屏幕上,在数据类型部分的重新使用引用的程序集中的类型复选框下,选择重用指定引用程序集中的类型单选按钮,然后仅检查包含服务使用的类型的程序集。这应该可以解决问题。
答案 1 :(得分:0)
我知道这是一个老问题,但我在尝试引用我们公司创建的另一个服务时遇到了同样的问题,该服务使用了一些需要重复用于参考目的的程序集。
如果您不需要重复使用程序集,那么使用接受的答案就可以正常加载服务。
但是如果你确实需要重用程序集,我会设法解决这个问题。
在Visual Studio上:
在项目的文件夹中:
在IIS中(如果您有权访问它)
打开Visual Studio并确保您的通用程序集/程序包与您要引用的服务所使用的版本完全相同。
添加新的服务引用,并在高级窗口中选择需要重用的程序集。
点击确定并祈祷。
希望您的服务成功添加,就像我在这些步骤之后所做的那样。