在类库项目中添加WCF服务引用,并在使用该类库的网站中添加相同的WEF引用。

时间:2012-10-09 16:01:13

标签: c# wcf web-services class-library

我真的陷入困境,并会尝试分解。

1:我有一个WCF类库项目有一些服务。

2:我有一个类库项目。

3:我有一个使用类库项目的网站。

4:类库有一个来自WCF类库项目的服务引用,同样的WCF引用也被添加到Web站点

5:当我构建网站时,会出现以下错误。

  

错误1113 Reference.svcmap:无法为服务引用' VPServices'生成代码。无法导入wsdl:portType详细信息:运行WSDL导入扩展时抛出异常:System.ServiceModel.Description.DataContractSerializerMessageContractImporter错误:引用类型列表包含多个具有数据协定名称的类型' VpResponseData'在命名空间' http://schemas.datacontract.org/2004/07/VPExternalCalls.CoreApi.MessageDefinitions'。需要排除以下所有类型之外的所有类型。只有匹配的类型才是有效的引用:

     

" WebApplication.Helpers.Class.ResponseData,WebApplication.Helpers,   Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null" (匹配)   " VPExternalCalls.CoreApi.MessageDefinitions.VpResponseData,   VPExternalCalls,Version = 1.0.0.0,Culture = neutral,   公钥= 559d4289d6c6d138" (匹配)XPath到错误源:   //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IVPServices']   无法导入wsdl:binding详细信息:导入时出错   wsdl:wsdl:binding所依赖的portType。 XPath到   WSDL:端口类型:   //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IVPServices']   XPath到错误源:   //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='BasicHttpBinding_IVPServices']   无法导入wsdl:port详细信息:导入时出错   wsdl:wsdl:port依赖的绑定。 XPath到   WSDL:结合:   //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='BasicHttpBinding_IVPServices']   XPath到错误源:   //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:service[@name='VPServices']/wsdl:port[@name =' BasicHttpBinding_IVPServices'] App_WebReferences / VPServices /

1 个答案:

答案 0 :(得分:2)

我遇到了类似的错误,我首选的解决方案是完全摆脱服务引用并编写自己的简单代理客户端。

如果您必须使用导入服务参考,则可以尝试以下操作:在服务参考导入对话框中,单击高级按钮(或右键单击现有参考,然后从上下文菜单中选择“配置服务参考”。在高级属性对话框中,取消选中“在引用程序集中重用类型”框:

Dialog

对两个服务引用执行此操作,重新编译,并查看是否可以解决问题。如果您发现需要某些引用类型,则需要使用“在指定程序集中重用类型”有选择地重新启用它们,但通常可以使用服务引用而无需重用任何引用类型。