2012-06-20 87 views
7

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

Error 1 Reference.svcmap: Failed to generate code for the service reference 'DPService'. Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Error: Type 'WebSupergoo.ABCpdf8.Objects.Bookmark' is a recursive collection data contract which is not supported. Consider modifying the definition of collection 'WebSupergoo.ABCpdf8.Objects.Bookmark' to remove references to itself. XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] Cannot import wsdl:binding Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] Cannot import wsdl:port Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on. XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] XPath to Error Source: //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

我有同样的问题,任何更新? –

+1

我正在卸载VS 2012,并将卸载.net 4.5,你有没有试图做到这一点?它有用吗? –

+0

嗨MSS,我们还没有尝试卸载。卸载后你有任何成功吗?感谢您对此的投入。 – amaz

回答

1

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

+0

我不明白为什么卸载VS 2012,然后安装Visual Studio 2010,然后重新安装2012 –

+0

我通过我的意思的方式 –

+0

有同样的问题:重新安装VS 2010和VS没有2012年的问题引起的VS 2010不工作!所以,我修好它卸载VS 2012 –

42

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

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

我不知道所有这样做的后果的,但它让我通过再次使用参考。

+2

在我们的例子中,我们需要使用“引用程序集”选项,因为我们有分享wcf和web之间的类型的单独的asssembly。值得注意的是,我们已经使用参考装配完成了大量的编码。改变他们所有返回引用生成的代理真的是噩梦 – amaz

+2

我试过这个解决方案,它没有用! –

+2

分支是你不重用类型,它会为每个模型对象生成一组新的类。很好,如果他们是pocos但是糟糕的话,如果你说客户端和服务器之间共享验证。奇怪的是,一个用户安装SP1,事情变得很有趣。这不知何故影响了我的机器......不重用重用,更新然后再重新打开,所有事情都再次发生。 –

4

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

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