从昨天开始使用Visual Studio 2012 RC,我们有一个WCF解决方案。每当我尝试在另一个解决方案中使用“添加/删除引用”对话框时,我在添加服务后会出现以下错误。
错误1 Reference.svcmap:无法为服务生成代码 参考'DPService'。无法导入wsdl:portType详细信息:An 运行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:wsdl:binding所依赖的portType。 XPath到 WSDL:端口类型: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] XPath到错误源: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] 无法导入wsdl:port详细信息:导入时出错 wsdl:wsdl:port依赖的绑定。 XPath到 WSDL:结合: //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中给出了相同的参考错误。
答案 0 :(得分:42)
我遇到了类似的问题,我在配置服务参考对话框中取消选中了“在引用的程序集中重用类型”复选框。
1)右键单击“服务参考” 2)选择“配置服务引用” 3)取消选中“在引用的程序集中重用类型”
我不确定这样做的所有后果,但它让我能够再次使用该参考。
答案 1 :(得分:4)
看起来'CustomerServiceReference'已在项目引用的两个程序集中定义。代码生成器不知道应该使用哪一个。
要摆脱这个问题,就像Lars说的那样。您可以配置服务引用,在其高级选项选项卡中,可以禁用“在所有引用的程序集中重用类型”,(通过选择“在指定的引用程序集中重用类型”)。您可以选择除导致此问题的程序集之外的所有程序集(它将CustomerServiceReference定义为错误消息说明。)
答案 2 :(得分:1)
卸载vs 2012,vs 2010会给你"未知错误",一个小错误消息,修复vs 2010(重新安装它),它就没问题了!