Visual Studio 2012错误Reference.svcmap抛出错误

ama*_*maz 7 wcf visual-studio-2012

从昨天开始使用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:绑定详细信息:有出错导入wsdl:wsdl:binding所依赖的portType.XPath来的wsdl:portType的://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] XPath来错误源:// WSDL:定义[@的targetNamespace =的 'http://tempuri.org/']/WSDL:结合[@名称= 'WSHttpContextBinding_IGQDynamicPackaging']无法导入的wsdl:端口详情:发生错误导入WSDL:绑定的wsdl:port是依赖.XPath来的wsdl:结合://wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] XPath来错误源:// WSDL:定义[@的targetNamespace =的 'http://tempuri.org/']/WSDL:服务[@名称= 'GQService']/WSDL:端口[@名称= 'WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences/DPService /

请注意:当我使用VS 2010时,所述服务工作正常.供您参考,我们正在使用"引用程序集中的重用类型"和"在所有引用程序集中重用类型"选项.

相同的设置适用于VS 2010,我们可以添加参考.但现在,安装VS 2012 RC后,我无法为VS 2010和VS2012添加参考.任何解决方案或解决此问题.

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

Hoa*_*kie 42

我有类似的问题,我取消选中配置服务参考对话框中的"重用引用程序集中的类型"复选框.

1)右键单击Service Reference 2)选择Configure Service Reference 3)取消选中"在引用的程序集中重用类型"

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

  • 在我们的例子中,我们需要使用"引用的程序集"选项,因为我们有单独的asssembly,它们共享wcf和web之间的类型.值得注意的是,我们使用参考汇编进行了大量编码.将所有这些更改回来引用生成的代理实际上是噩梦 (2认同)
  • 我试过这个解决方案并没用! (2认同)
  • 分支是您不重用类型,它为每个模型对象生成一组新类.好吧,如果他们是pocos但很糟糕,如果你说在客户端和服务器之间共享验证.奇怪的是,一个用户正在安装sp1,事情变得很有趣.这不知何故影响了我的机器......解开重用,更新然后重新打开它,一切都表现得很好. (2认同)
  • 这样做的问题是所有服务方法参数都具有服务的命名空间 - 不是说共享命名空间。因此,如果您在其中传递的对象可能与参数命名空间不匹配。还会产生大量“模棱两可”的参考错误。 (2认同)

Saw*_*wan 1

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

  • 我找到了针对同一问题的另一个解决方案希望它有效,您可以轻松地右键单击服务引用,然后选择配置并取消选中引用程序集中的重用类型,它将起作用 (7认同)