7

从昨天开始使用 Visual Studio 2012 RC,我们有一个 WCF 解决方案。每当我尝试在另一个解决方案中使用“添加/删除引用”对话框时,添加服务后都会出现以下错误。

错误 1 ​​Reference.svcmap:无法为服务引用“DPService”生成代码。无法导入 wsdl:portType 详细信息:运行 WSDL 导入扩展时引发异常:System.ServiceModel.Description.DataContractSerializerMessageContractImporter 错误:类型“WebSupergoo.ABCpdf8.Objects.Bookmark”是不支持的递归集合数据协定。考虑修改集合“WebSupergoo.ABCpdf8.Objects.Bookmark”的定义以删除对自身的引用。XPath 到错误源://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] 无法导入 wsdl:binding 详细信息:导入一个错误wsdl:binding 所依赖的 wsdl:portType。XPath 到 wsdl:portType: //wsdl: 定义[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] XPath 到错误源://wsdl:definitions[@targetNamespace='http://tempuri.org /']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 无法导入 wsdl:port 详细信息:导入 wsdl:port 所依赖的 wsdl:binding 时出错。wsdl:binding 的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 错误源的 XPath: //wsdl:definitions[@ targetNamespace='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences/DPService/ portType[@name='IGQDynamicPackaging'] XPath 到错误源://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 无法导入 wsdl:端口详细信息:导入 wsdl: 绑定时出错,该 wsdl:port 依赖于该绑定。wsdl:binding 的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 错误源的 XPath: //wsdl:definitions[@ targetNamespace='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences/DPService/ portType[@name='IGQDynamicPackaging'] XPath 到错误源://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 无法导入 wsdl:端口详细信息:导入 wsdl: 绑定时出错,该 wsdl:port 依赖于该绑定。wsdl:binding 的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 错误源的 XPath: //wsdl:definitions[@ targetNamespace='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences/DPService/ binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 无法导入 wsdl:port 详细信息:导入 wsdl:port 所依赖的 wsdl:binding 时出错。wsdl:binding 的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 错误源的 XPath: //wsdl:definitions[@ targetNamespace='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences/DPService/ binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 无法导入 wsdl:port 详细信息:导入 wsdl:port 所依赖的 wsdl:binding 时出错。wsdl:binding 的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 错误源的 XPath: //wsdl:definitions[@ targetNamespace='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences/DPService/

请注意:当我使用 VS 2010 时,上述服务工作正常。供您参考,我们正在使用“在引用的程序集中重用类型”打开并选中“在所有引用的程序集中重用类型”选项。

相同的设置在 VS 2010 上运行良好,我们可以添加参考。但是现在,在安装 VS 2012 RC 之后,我无法为 VS 2010 和 VS2012 添加参考。任何解决方案或解决此问题。

我只想回滚并想使用VS2010,“添加服务”现在在VS 2010中给出了相同的参考错误。

4

3 回答 3

43

我遇到了类似的问题,我取消了“配置服务引用”对话框中的“在引用的程序集中重用类型”复选框。

1)右键单击服务参考 2)选择配置服务参考 3)取消选中“在引用的程序集中重用类型”

我不确定这样做的所有后果,但它让我能够再次使用参考。

于 2012-06-20T22:03:02.297 回答
4

看起来“CustomerServiceReference”已在您的项目引用的两个程序集中定义。代码生成器不知道应该使用哪一个。

要摆脱这个问题,就像拉斯说的那样。您可以配置您的服务引用,在其高级选项选项卡中,您可以禁用“在所有引用的程序集中重用类型”,(通过选择“在指定的引用程序集中重用类型”)。您可以选择除导致此问题的程序集以外的所有程序集(将 CustomerServiceReference 定义为错误消息所述。)

于 2013-10-28T08:01:32.417 回答
1

卸载vs 2012,vs 2010会给你“未知错误”,一个小错误信息,修复vs 2010(重新安装),就OK了!

于 2012-06-21T08:27:05.163 回答